首页 > 解决方案 > 如何使用 golang 从查询中直接导出到 CSV

问题描述

我有一个 java 脚本,可将网站 html 表格内容从 Web 应用程序导出为 CSV。我想绕过它,当按下按钮时,它会运行查询并将其下载到 CSV,而无需先将其加载到 html 表中。有没有人有这样的事情?

这对于打印报告很有用。我有一些重要的报告,因为它们必须首先加载到网站上,这导致了太多的延迟。

标签: htmlgo

解决方案


您只需执行以下操作:

func(w http.ResponseWriter, r *http.Request)
    var data = [][]string{{"Line1", "Hello"}, {"Line2", "World"}}
    buffer := &bytes.Buffer{} // creates IO Writer

    writer := csv.NewWriter(buffer)

    for _, value := range data {
        err := writer.Write(value)
        checkError("Cannot write to buffer", err)
    }

    writer.Flush()

    w.Header().Set("Content-Type", "text/csv") // setting the content type header to text/csv
    w.Header().Set("Content-Disposition", "attachment;filename=TheCSVFileName.csv")
    w.Write(buffer.Bytes())
}

推荐阅读