2009-01-13 21 views
10

से एक्सेल * .xls फ़ाइल को आउटपुट कैसे करें मेरे पास कई जेनरेट की गई HTML टेबल हैं जिन्हें मुझे Excel फ़ाइल के रूप में आउटपुट करने की आवश्यकता है। क्लासिक एएसपी में साइट को कोड किया गया है। क्या यह संभव है? क्या इसे किसी भी तरह से ओपन ऑफिस पुस्तकालयों का उपयोग करके किया जा सकता है?क्लासिक एएसपी


संपादित करें: अब तक, मैंने कुछ सुझावों का प्रयास किया है, लेकिन ऐसा लगता है। आदर्श रूप में, मैं चाहता हूं कि उपयोगकर्ता एक लिंक पर क्लिक करने में सक्षम हो जो एक .xls फ़ाइल के डाउनलोड को शुरू कर देगा। यह कोड:

<%@ Language=VBScript %> 
<% option explicit 

Response.ContentType = "application/vnd.ms-excel" 
Response.AppendHeader "content-disposition", " filename=excelTest.xls" 
%> 
<table> 
    <tr> 
     <th>Test Col 1</th> 
     <th>Test Col 2</th> 
     <th>Test Col 3</th> 
     <th colspan="2">Test Col 4</th> 
     <th>Test Col 6</th> 
     <th>Test Col 7</th> 
    </tr> 
    <tr> 
     <td>Data</td> 
     <td>Data</td> 
     <td>Data</td> 
     <td>Data</td> 
     <td>Data</td> 
     <td>Data</td> 
     <td>Data</td> 
    </tr> 
</table> 

विफल होने लगता है जब IE7 पृष्ठ प्राप्त करने के लिए उपयोग किया जाता है। आईई का कहना है कि यह "excelTest.asp" डाउनलोड नहीं कर सकता है और "अनुरोधित साइट या तो अनुपलब्ध है या नहीं मिल सकती है।"

+0

इस के अंत में टिप्पणियां हैं: http://blogs.msdn.com/vsofficedeveloper/pages/Office-2007-Open-XML-MIME-Types.aspx – Fionnuala

+0

मुझे उस पृष्ठ पर केवल एक ही टिप्पणियां दिखाई देती हैं अतिरिक्त नोट्स जो माइम-प्रकारों के समर्थन के लिए सर्वर पर किए जाने वाले परिवर्तनों को इंगित करते हैं। क्या आप कह रहे हैं कि यह वह टुकड़ा है जिसे मैं याद कर रहा हूं? – cdeszaq

+0

मैं यहाँ एक संबंधित सवाल है, की सराहना करता है, तो किसी को भी एक नज़र, ले सकता है http://stackoverflow.com/questions/1383366/generating-excel-file-error – George2

उत्तर

18

यह AddHeader, AppendHeader नहीं है।

<%@ Language=VBScript %> 
<% Option Explicit 

Response.ContentType = "application/vnd.ms-excel" 
Response.AddHeader "Content-Disposition", "attachment; filename=excelTest.xls" 
%> 
<table> 
    <tr> 
     <td>Test</td> 
    </tr> 
</table> 

अद्यतन: मैं कैसे generate Excel files in ASP Classic के बारे में एक ब्लॉग पोस्ट में लिखा है। इसमें एक्सएलएस और सीएसवी फाइलों को उत्पन्न करने के लिए कोड का एक उपयोगी टुकड़ा शामिल है।

+0

यह एक आकर्षण की तरह काम करता है! धन्यवाद! – cdeszaq

+0

मेरे पास कोई संबंधित प्रश्न है, अगर कोई भी एक नज़र देख सकता है, तो http://stackoverflow.com/questions/1383366/generating-excel-file-error – George2

+0

धन्यवाद, क्रिस्टोफ नीरिनक !! इससे मुझे यह पता लगाने में मदद मिली कि आईई को एक्सेल फ़ाइल को डाउनलोड के रूप में कैसे पहचानें। – ckpepper02

0

आप हमेशा एक एक्सएलएस दस्तावेज़ में HTML तालिका निर्यात कर सकते हैं। एक्सेल एचटीएमएल टेबल समझने के लिए एक बहुत अच्छी नौकरी करता है।

एक और संभावित रूप से HTML टेबल को CSV या TSV फ़ाइल के रूप में निर्यात करना है, लेकिन आपको अपने कोड में स्वरूपण सेट अप करना होगा। इसे पूरा करना मुश्किल नहीं है।

माइक्रोसॉफ्ट.ऑफिस.इंटरॉप में कुछ कक्षाएं हैं जो आपको एक्सेल फ़ाइल प्रोग्रामेटिक रूप से बनाने की अनुमति देती हैं, लेकिन मैंने उन्हें हमेशा थोड़ा बेकार पाया है। आप creating a spreadsheet here का .NET संस्करण पा सकते हैं, जो क्लासिक एएसपी के लिए संशोधित करना बहुत आसान होना चाहिए।

.NET के लिए, मुझे हमेशा CarlosAG's Excel XML Writer Library पसंद आया है। इसमें एक अच्छा जनरेटर है ताकि आप अपनी एक्सेल फ़ाइल सेट कर सकें, इसे एक्सएमएल स्प्रेडशीट के रूप में सहेज सकें और यह कोड को सभी स्वरूपण और सबकुछ करने के लिए उत्पन्न करता है। मुझे पता है कि यह क्लासिक एएसपी नहीं है, लेकिन मैंने सोचा कि मैं इसे वहां फेंक दूंगा।


के साथ है कि आप ऊपर कोशिश कर रहे हैं, शीर्ष लेख जोड़ने का प्रयास करें:

"Content-Disposition", "attachment; filename=excelTest.xls" 

देखें कि अगर काम करता है। इसके अलावा, मैं हमेशा सामग्री प्रकार के लिए इस का उपयोग करें:

Response.ContentType = "application/octet-stream" 
    Response.ContentType = "application/vnd.ms-excel" 
+0

VBScript एक त्रुटि फेंकता है: वस्तु का समर्थन नहीं करता यह गुण या विधि: 'Response.AppendHeader' – cdeszaq

0

वहाँ एक 'सस्ते और गंदा' चाल है कि मैं का इस्तेमाल किया है है ... shhhh किसी को नहीं है। यदि आप टैब को सीमित टेक्स्ट आउटपुट करते हैं और फ़ाइल नाम * .xls बनाते हैं तो Excel इसे आपत्ति, प्रश्न या चेतावनी के बिना खुलता है। तो बस टैब को सीमित करने के साथ टेक्स्ट फ़ाइल में डेटा क्रैंक करें और आप इसे एक्सेल या ओपन ऑफिस के साथ खोल सकते हैं।

+1

असल में एक्सेल 2007 एक चेतावनी संवाद पॉप करेगा यदि कोई फ़ाइल टीएसवी प्रारूप में है, लेकिन इसका विस्तार पढ़ता है .xls मुझे इससे बचने के किसी भी तरीके से पता नहीं है। –

+0

टेक्स्ट फ़ाइल CSV बनाएं लेकिन इसे एक .csv एक्सटेंशन दें। एक्सेल इसे बिना संदेश के खोल देगा। – Tester101

+1

दो संभावित मुद्दे: (1) माइक्रोसॉफ्ट एक्सेल अग्रणी रिक्त स्थान और शून्य को ट्रिम करेगा; और (2) फ़ाइल खोलते समय माइक्रोसॉफ्ट एक्सेल 2010 चेतावनी पेश करेगा। # 1 को "{{cell-data}" के साथ टेक्स्ट लपेटकर हल किया जा सकता है (के माध्यम से: http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm#CSVAndExcel) – iokevins

4

एमएस एक COM पुस्तकालय यह करने के लिए Office वेब घटक कहा जाता है बनाया है। MSOWC.dll को सर्वर पर पंजीकृत होना आवश्यक है। यह कार्यालय दस्तावेज़ फ़ाइलों को बना और कुशल बना सकता है।

How To Use the Spreadsheet Web Component with Visual Basic

Working with the Office Web Components

0

जब तक मैंने Response.Buffer = गलत जोड़ा, तब तक मुझे वही समस्या थी। कोड को निम्नलिखित में बदलने का प्रयास करें।

Response.Buffer = झूठी Response.ContentType = "application/vnd.ms-एक्सेल" Response.AddHeader "सामग्री-विन्यास", "लगाव; फ़ाइल नाम = excelTest.xls"

समस्या सिर्फ मैं अब यह है कि जब Excel फ़ाइल खोलता है तो मुझे निम्न संदेश मिलता है।

फ़ाइल जिसे आप खोलने की कोशिश कर रहे हैं, 'फ़ाइल नाम [1] .xls', फ़ाइल एक्सटेंशन द्वारा निर्दिष्ट एक अलग प्रारूप में है। सत्यापित करें कि फ़ाइल दूषित नहीं है और फ़ाइल खोलने से पहले एक विश्वसनीय स्रोत से है। क्या आप अभी फाइल खोलना चाहते हैं?

जब आप फ़ाइल खोलते हैं तो डेटा अलग कॉलम में दिखाई देता है, लेकिन स्प्रेडशीट सभी सफेद है, कोशिकाओं के बीच कोई सीमा नहीं है।

उम्मीद है कि मदद करता है।

संबंधित मुद्दे