gin读取本地excel文件 前后端分离
时间: 2023-07-30 18:07:23 浏览: 249
如果你想要在前后端分离的情况下,让 Gin 读取本地 Excel 文件,你可以按照以下步骤:
1. 在前端页面中添加一个上传 Excel 文件的表单,并使用 Ajax 将文件上传到后端服务器。
2. 在后端服务器中,使用 Gin 的 multipart 中间件来处理上传的文件,将文件保存到本地磁盘上。
3. 在后端服务器中,使用第三方库(例如 go-xlsx)来读取本地 Excel 文件的数据,并将数据返回给前端页面。
下面是一个简单的示例代码,可以帮助你实现这个功能:
```go
package main
import (
"github.com/gin-gonic/gin"
"github.com/tealeg/xlsx"
"net/http"
"os"
)
func main() {
r := gin.Default()
// 处理上传的 Excel 文件
r.POST("/upload", func(c *gin.Context) {
file, err := c.FormFile("file")
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// 将上传的文件保存到本地磁盘上
filepath := "./" + file.Filename
if err := c.SaveUploadedFile(file, filepath); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
// 读取本地 Excel 文件的数据,并返回给前端页面
xlFile, err := xlsx.OpenFile(filepath)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
var data []string
for _, sheet := range xlFile.Sheets {
for _, row := range sheet.Rows {
for _, cell := range row.Cells {
data = append(data, cell.String())
}
}
}
c.JSON(http.StatusOK, gin.H{"data": data})
// 删除本地磁盘上的文件
os.Remove(filepath)
})
r.Run(":8080")
}
```
在这个示例中,我们首先使用 Gin 的 `FormFile` 方法来获取上传的 Excel 文件,并将其保存到本地磁盘上。然后,我们使用第三方库 go-xlsx 来读取本地 Excel 文件的数据,并将其返回给前端页面。最后,我们使用 `os.Remove` 方法来删除本地磁盘上的文件,以避免占用过多的磁盘空间。
阅读全文