文章标题 原创 翻译 转载 文章内容 我们是使用github.com/tealeg/xlsx库实现的,用法比较简单: 1. 读取excel文件 2. 遍历sheets 3. 在每个sheet中再遍历每行 当然这个库还可以写入excel文档这里就不介绍了,有兴趣的可以去github上查看。 代码如下: ``` package main import ( "encoding/json" "flag" "fmt" "github.com/tealeg/xlsx" ) type ExcelSheet struct { SheetName string `json:"Name"` Rows [][]string `json:"Rows"` } type ExcelData struct { FileName string `json:"Name"` Sheets []ExcelSheet `json:"Sheets"` } func main() { var paramPath string flag.StringVar(¶mPath, "path", "./test.xlsx", "Excel File Path") flag.Parse() if len(paramPath) == 0 { fmt.Println("excel file path is empty!") return } excelData, err := ReadExcel(paramPath) if err != nil { panic(err) } jsonStr, err := Excel2Json(&excelData) if err != nil { panic(err) } fmt.Println(jsonStr) } func ReadExcel(excelPath string) (ExcelData, error) { var excelData ExcelData excelData.FileName = excelPath xlFile, err := xlsx.OpenFile(excelPath) if err != nil { return excelData, err } for _, v := range xlFile.Sheets { var sheet ExcelSheet sheet.SheetName = v.Name for _, row := range v.Rows { cols := []string{} for _, cell := range row.Cells { cols = append(cols, cell.String()) } sheet.Rows = append(sheet.Rows, cols) } excelData.Sheets = append(excelData.Sheets, sheet) } return excelData, nil } func Excel2Json(excelData *ExcelData) (string, error) { b, err := json.MarshalIndent(excelData, "", " ") return string(b), err } ``` 文章类别 Python Mobile Android Java Shell Life Database Bug Windows IOS Tools Boost Node.js Mac Product Tips C/C++ Golang Javascript React Qt MQ MongoDB Design Web Linux LLM ChatGPT RAG AI 提交