将表单标签下载到csv文件格式

时间:2012-12-06 02:31:20

标签: forms grails csv download gsp

我需要一些关于如何将表单下载到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>

GSP应该是这样的,当下载csv文件时,我不确定控制器需要什么,结果应该是正在选择的选项中的一个值,并将其显示为文件中的文字。顺便说一句,我正在使用grails。那么有没有人可以帮我这个?我一直在研究它,但没有任何结果。

非常感谢你们:)

1 个答案:

答案 0 :(得分: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>