当前位置: 首页 > 工具软件 > go-xls > 使用案例 >

go语言读取xls表格xls文件操作替代解决方案

景令秋
2023-12-01

前提说明

当下go语言没有成熟的xls框架,试了好多个xls框架,都有问题(读取不全或者乱码)。但是又必须要读取xls格式的表格文件。没有办法,又没有时间去研究这些框架,只好用其他语言将xls自动转成xlsx格式再进行读取操作。在这里采用的是python3。

1. python3环境

1.1 安装python3

linux安装教程
windows安装教程
windows 64位下的安装包下载慢,我放蓝奏云了
python-3.7.7-amd64.exe下载:https://wws.lanzous.com/i68fAnhyz9i 密码:but3

1.2 相关框架

根据自己系统环境变量设置,选择使用pip或者pip3,一定要使用跟python3对应的pip。

pip3 install pyexcel pyexcel-xls pyexcel-xlsx

2. python代码(xls转xlsx)

将下面代码保存到xls2xlsx.py文件中。

import pyexcel as p
import sys
xlsFile = sys.argv[1]
p.save_book_as(file_name=xlsFile,
               library='pyexcel-xls',
               skip_hidden_row_and_column=True,
               dest_file_name=xlsFile + "x")

3. go调用代码

注意提前判断好文件格式,函数内不再判断。

// path:xls文件路径
func Xls2Xlsx(path *string) error {
	// 删除已经存在同名xlsx文件
	if _, err := os.Stat(*path + "x"); err == nil {
		os.Remove(*path + "x")
	}
	// 执行命令(阻塞式调用)
	err := exec.Command("python3", "./xls2xlsx.py", *path).Run()
	if err != nil {
		fmt.Println(err.Error())
		return err
	}
	// 查看xlsx文件是否成功生成
	if _, err := os.Stat(*path + "x"); err == nil {
		*path = *path + "x"
	} else {
		return errors.New("格式转化失败,请手动转换为xlsx格式。")
	}
	return nil
}

接下来,有了xlsx文件,想怎么zao怎么zao吧~!

结束语

python3环境安装和pip下载问题,很蛋疼的。遇到问题多搜索,解决不了,可以留言问我。

 类似资料: