2012-12-06 60 views
-1

我需要一些幫助或指導如何將表單下載到CSV文件中。我想在這裏做的是:將表單標籤下載到csv文件格式

 <form> 
<select name="mydropdown"> 
<option value="Chicken">Fresh Milk</option> 
<option value="Apple">Old Cheese</option> 
<option value="Bread">Hot Bread</option> 
</select> 
     </form> 
    <input type=button> 

普惠制應該有一些什麼樣子的這一點,並正在下載的CSV文件時,我不知道什麼是控制器的需求,其結果應該是一個選擇的選項中的值,並將其顯示爲文件中的文本。順便說一句,我使用Grails。那麼有沒有人可以幫助我呢?我一直在研究它,並沒有任何結果。

謝謝你們這麼多:)

+0

不知道世界衛生大會你在問。通過「將表單下載到CSV文件中」是否將表單字段值附加到現有CSV作爲一行?後來你說「csv正在下載」,這給了我另一個想法。文本內的文本從不提交,只有字段的內容,所以'asdasdasd'不會被傳送。 – Amadan

+0

對不起,我剛剛編輯過。現在應該更清楚了。當用戶從下拉菜單中選擇一個選項時。它將其中一個選項下載到csv文件中。 – user1681961

+0

你有什麼想法如何做到這一點? – user1681961

回答

1

您可以使用OpenCSV做的工作。

定義依賴

dependencies { 
    ... 
    compile('net.sf.opencsv:opencsv:2.0') 
    ... 
} 

創建操作

def export() { 
    ByteArrayOutputStream output = new ByteArrayOutputStream() 
    char separator = ';' 
    CSVWriter writer = new CSVWriter(new OutputStreamWriter(output), separator); 
    def line = [params.mydropdown] 
    writer.writeNext(line as String[]) 
    //use writeNext as many times as needed 
    writer.close() 
    byte[] bytes = output.toByteArray() 
    //needed to force download 
    response.setContentType("text/csv") 
    response.setContentLength(bytes.length) 
    response.setHeader("Content-Disposition", "attachment; filename=mycsv.csv") 
    response.outputStream << bytes 
} 

更改您的形式去出口

<g:form action="export"> 
... 
</g:form> 
+0

感謝您的回覆。我有一個錯誤代碼,它聲明:無法找到匹配的構造函數:liquibase.util.csv.opencsv.CSVWriter(java.io.OutputStreamWriter,java.lang.String)。 Stacktrace如下: 消息:找不到匹配的構造函數:liquibase.util.csv.opencsv.CSVWriter(java.io.OutputStreamWriter,java.lang.String) 你知道這個錯誤是關於什麼的嗎? – user1681961

+0

你好!非常感謝你,它已經修好了。在該行中: CSVWriter writer = new CSVWriter(new OutputStreamWriter(output),';'); 我刪除';'併成爲 CSVWriter writer = new CSVWriter(new OutputStreamWriter(output)); 它工作。我不知道爲什麼。你知道嗎? – user1681961

+0

這是因爲必須是char,而groovy將它定義爲String。我會更新這個例子。 –