用go写一个根据excel文件提炼出第一列和第二列的值使用post请求传递把获取到的值输入到excel的第三列
以下是一个示例代码,需要安装excelize和gorilla/mux库:
package main
import (
"fmt"
"log"
"net/http"
"strconv"
"github.com/gorilla/mux"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/extract", extractValues).Methods("POST")
log.Fatal(http.ListenAndServe(":8080", router))
}
func extractValues(w http.ResponseWriter, r *http.Request) {
// 读取请求体中的Excel文件
file, _, err := r.FormFile("file")
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
defer file.Close()
// 加载Excel文件
xlsx, err := excelize.OpenReader(file)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// 获取第一列和第二列的值
rows := xlsx.GetRows("Sheet1")
values := make([][]string, len(rows))
for i, row := range rows {
values[i] = []string{row[0], row[1]}
}
// 把获取到的值输入到第三列
for i, row := range values {
value := row[0] + row[1]
xlsx.SetCellValue("Sheet1", "C"+strconv.Itoa(i+1), value)
}
// 保存Excel文件
err = xlsx.Write(w)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
这个代码会启动一个HTTP服务器,监听8080端口。当收到POST请求时,会从请求体中读取Excel文件,提取第一列和第二列的值,并把它们拼接起来输入到第三列。最后,返回修改后的Excel文件作为响应。注意,这个代码只是一个示例,实际生产环境中需要进行错误处理和安全性检查。
原文地址: https://www.cveoy.top/t/topic/bTmA 著作权归作者所有。请勿转载和采集!