पर डेटा निर्यात करने के लिए HTML कोड के बिना जेएसपी पृष्ठ मुझे एक्सेल शीट में अपना डेटा निर्यात करने में समस्या का सामना करना पड़ रहा है, यह मेरी कोड में अन्य डेवलपर्स के कुछ कोड के कारण है। इसलिए मुख्य समस्या जेएसपी पेज का उपयोग कर एक्सेल या .cvs को डेटा निर्यात करना है, लेकिन किसी भी HTML कोड का उपयोग किए बिना। कोई सुझाव मुझे मेरे विकासशील क्षेत्र में अन्वेषण करने में भी मदद करेगा। आपके प्रयासों के लिए धन्यवाद।एक्सेल शीट
उत्तर
इसके लिए एक सर्वलेट का बेहतर उपयोग करें। कच्चा जावा कोड जेएसपी फ़ाइल में नहीं है, यह maintenance trouble के लिए बस नुस्खा है।
शुरू करने के लिए, एक साधारण जावा उपयोगिता वर्ग जो उदाहरण के लिए ले जाता है बनाने के एक List<List<T>>
या एक List<Data>
(जिसमें Data
एक पंक्ति का प्रतिनिधित्व करता है) सीएसवी सामग्री और एक OutputStream
विधि तर्कों के रूप का प्रतिनिधित्व करने और तर्क जो कार्य को कॉपी डेटा करता लिखें।
एक बार जब आप इसे काम करने के लिए प्राप्त करते हैं, तो एक सर्वलेट क्लास बनाएं जो कुछ सीएसवी फ़ाइल पहचानकर्ता को अनुरोध पैरामीटर या पथइन्फो के रूप में लेता है (मैं रेडमंड में एक टीम द्वारा विकसित एक निश्चित वेबब्रोसर के रूप में pathinfo का उपयोग करने की अनुशंसा करता हूं अन्यथा फ़ाइल नाम/mimetype का पता लगाने में विफल रहता है), कहीं से List<List<T>>
या List<Data>
प्राप्त करने के लिए पहचानकर्ता का उपयोग करता है और सही प्रतिक्रिया शीर्षकों के सेट के साथ HttpServletResponse
के OutputStream
पर लिखता है।
public static <T> void writeCsv (List<List<T>> csv, char separator, OutputStream output) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, "UTF-8"));
for (List<T> row : csv) {
for (Iterator<T> iter = row.iterator(); iter.hasNext();) {
String field = String.valueOf(iter.next()).replace("\"", "\"\"");
if (field.indexOf(separator) > -1 || field.indexOf('"') > -1) {
field = '"' + field + '"';
}
writer.append(field);
if (iter.hasNext()) {
writer.append(separator);
}
}
writer.newLine();
}
writer.flush();
}
यहाँ एक उदाहरण है कि कैसे आप इसका इस्तेमाल कर सकते हैं::
यहाँ एक बुनियादी किकऑफ़ उदाहरण है
public static void main(String[] args) throws IOException {
List<List<String>> csv = new ArrayList<List<String>>();
csv.add(Arrays.asList("field1", "field2", "field3"));
csv.add(Arrays.asList("field1,", "field2", "fie\"ld3"));
csv.add(Arrays.asList("\"field1\"", ",field2,", ",\",\",\""));
writeCsv(csv, ';', System.out);
}
और एक सर्वलेट अंदर आप मूल रूप से कर सकते हैं:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String filename = request.getPathInfo();
List<List<Object>> csv = someDAO().list();
response.setHeader("content-type", "text/csv");
response.setHeader("content-disposition", "attachment;filename=\"" + filename + "\"");
writeCsv(csv, ',', response.getOutputStream());
}
मानचित्र /csv/*
जैसे कुछ पर यह सर्वलेट और इसेजैसे कुछ के रूप में आमंत्रित करें। यह मूल रूप से सब है। Pathinfo में फ़ाइल नाम महत्वपूर्ण है क्योंकि रेडमंड में एक टीम द्वारा विकसित एक निश्चित वेबब्रोसर Content-Disposition
शीर्षलेख के filename
भाग को अनदेखा करता है और इसके बजाय यूआरएल के अंतिम पथ भाग का उपयोग करता है।
- 1. बनाना एक्सेल शीट, एक्सेल
- 2. एक्सेल शीट
- 3. मैं एक्सेल शीट
- 4. जब मैं एक्सेल शीट
- 5. एक्सेल टैब शीट नाम बनाम विजुअल बेसिक शीट नाम
- 6. एक्सेल शीट से टेबल कैसे बनाएं?
- 7. एक्सेल शीट पढ़ने के दौरान बिफएक्सप्शन
- 8. सी # एक्सेल इंटरऑप, एक्सेल
- 9. vba: एक्सेल शीट में टेक्स्ट फ़ाइल आयात करना
- 10. एक्सेल - एक निश्चित शीट पर जाने के लिए बटन
- 11. प्रोग्रामेटिक रूप से एक्सेल शीट की पंक्ति ऊंचाई
- 12. एक्सेल शीट कॉलम नामों को संख्याओं में कैसे परिवर्तित करें?
- 13. शीट पर क्लिक किए जाने पर एक्सेल वीबीए फ़ंक्शन चलाएं
- 14. एक्सेल शीट कॉलम में "ऑटोसाइज" कैसे सेट करें? (NPOI)
- 15. एक्सेल
- 16. शीट में पंक्तियों की मात्रा
- 17. एक्सेल
- 18. एक्सेल शीट दिनांक प्रारूप जैसे एक्सेल शीट दिनांक प्रारूप में सटीक तिथि सेल मान को मुद्रित करने के लिए कैसे करें apache poi
- 19. एक्सेल
- 20. सी # -excel इंटरऑप - एक शीट
- 21. NSOpenPanel शीट
- 22. एक्सेल
- 23. एक्सेल
- 24. एक्सेल इंटरॉप प्रिंट
- 25. एक्सेल रेंज
- 26. प्रोग्राम एक्सेल
- 27. एक्सेल में जेटीबल लिखना
- 28. एक्सेल वीबीए
- 29. एक्सेल (VBA)
- 30. एक्सेल वीबीए
निश्चित रूप से सर्वलेट के लिए एक नौकरी। +1 – ChadNC
मैंने इस तरह के समाधान की कोशिश की लेकिन मुझे https के माध्यम से फ़ाइल प्राप्त करने में समस्याएं थीं। यह https के माध्यम से क्यों विफल हो सकता है? –
समस्या कहीं और है। दाएं शीर्ष पर 'प्रश्न पूछें' बटन दबाकर अपना प्रश्न पूछें और समस्या को विस्तार से विस्तृत करें। – BalusC