2011-02-01 15 views
10

मेरे पास डीबी में कुछ डेटा है और इसे एक CSV फ़ाइल में निर्यात करने में सक्षम होना चाहते हैं और एक लिंक प्रदान करना चाहते हैं ताकि उपयोगकर्ता इसे डाउनलोड कर सके।स्प्रिंग 3 - सीएसवी प्रारूप में निर्यात डेटा

क्या इसके लिए स्प्रिंग 3 द्वारा प्रदान की गई कोई व्यवस्था है?

क्या आप जानते हैं कि मैं यह कैसे कर सकता हूं?

+0

वसंत सीएसवी समर्थन प्रदान नहीं करता है। जावा के लिए बहुत सी सीएसवी पुस्तकालय हैं, हालांकि (केवल "जावा सीएसवी" के लिए खोजें)। – skaffman

उत्तर

18

मुझे लगता है कि यह एक सीएसवी या किसी भी पाठ फ़ाइल दृश्य को बनाना आसान होना चाहिए। यहाँ का सुझाव दिया जाता कदम:

BufferedWriter writer = new BufferedWriter(response.getWriter()):

  1. एक दृश्य कक्षा बनाएं रूप में (छद्म कोड) इस प्रकार है (आप CSVView के रूप में यह नाम कर सकते हैं) का विस्तार org.springframework.web.servlet.view.AbstractView

  2. अवहेलना renderMergedOutputModel

    response.setHeader("Content-Disposition","attachment; filename=\"file.csv\"");

    myDbData = (Whatever) modelMap.get("modelKey");

    some kind of loop {writer.write(myDbData csv row); writer.newLine(); }

    finally writer.flush(); writer.close();

के बाद कि सिर्फ ModelAndView लौट मॉडल (modelKey के साथ वस्तु Whatever) और दृश्य के साथ CSVView के रूप में नियंत्रक में।

+0

आपको बहुत धन्यवाद, यह काम किया! – tsunade21

+0

धन्यवाद। आपने मेरा दिन बचाया :) – Garbage

+2

एक वैकल्पिक समाधान http://stackoverflow.com/questions/9913732/configuring-spring-mvc-controller-to-send-file-to-client पाया जा सकता है, लेकिन यह स्वाद का विषय है। –

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