-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to merge multiple workbook into one #1625
Comments
Thanks for your issue. Excelize provides a set of functions that allow you to write to and read spreadsheets, please reference the documentation. You can open the source workbook by the |
CopySheet 我看有这个方法,能否实现拷贝到另外一个工作表中吗? |
// 创建一个新的工作簿
mergedFile := excelize.NewFile()
for _, v := range list {
// 读取 Excel 文件内容
fileData, err := os.ReadFile("." + v.Template)
if err != nil {
fmt.Println("读取文件失败:", err)
return
}
// 打开 Excel 文件
xlsx, err := excelize.OpenReader(strings.NewReader(string(fileData)))
if err != nil {
fmt.Println("打开文件失败:", err)
return
}
// 遍历每个工作表
for _, sheetName := range xlsx.GetSheetList() {
// rows, err := xlsx.GetRows(sheetName)
// if err != nil {
// fmt.Println("获取行数据失败:", err)
// return
// }
from, err := xlsx.GetSheetIndex(sheetName)
if err != nil {
fmt.Println("获取工作表索引失败:", err)
return
}
if err != nil {
fmt.Println("复制工作表失败:", err)
return
}
// 创建新的工作表
newSheetName := sheetName
mergedFile.NewSheet(newSheetName)
err = xlsx.CloneSheet(from, mergedFile, newSheetName)
if err != nil {
fmt.Println("复制工作表失败:", err)
return
}
// if opt, err := xlsx.GetSheetProps(sheetName); err != nil {
// panic(err)
// } else {
// fmt.Println("opt=", opt)
// mergedFile.SetSheetProps(newSheetName, &opt)
// }
// // 将当前工作表的行数据复制到合并文件的对应工作表中
// for rowIndex, row := range rows {
// rowIndexStr := fmt.Sprintf("%d", rowIndex+1)
// mergedFile.SetSheetRow(sheetName, "A"+rowIndexStr, &row)
// }
}
}
// 删除默认的 Sheet1,并将第一个工作表设为默认工作表
mergedFile.DeleteSheet("Sheet1")
mergedFile.SetActiveSheet(0)
// 保存合并后的 Excel 文件
err = mergedFile.SaveAs("./downloads/merged.xlsx")
if err != nil {
this.JSONError(err.Error())
} |
生成的xlsx文件,打开提示如下信息,而且显示空表格: |
@xuri 帮忙看看是什么问题 |
文件打开错误已解决,按照你们提交的issues https://go-review.googlesource.com/c/go/+/522316/1/src/encoding/xml/marshal.go#548 修改xml底层类库 |
Description
如标题描述,求助。。。
Steps to reproduce the issue:
Describe the results you received:
Describe the results you expected:
Output of
go version
:Excelize version or commit ID:
Environment details (OS, Microsoft Excel™ version, physical, etc.):
The text was updated successfully, but these errors were encountered: