360的Excel 文件读写库(golang)存在的一点小问题

语言: CN / TW / HK

本周使用360的Excel文件读写库时发现一个小问题

本周使用360的Excel文件的读写库的时候发现一点小问题。产生问题的代码如下:

package main

import excelize "github.com/360EntSecGroup-Skylar/excelize/v2"

func main() {
    Main2()
}
func Main2() {
    f := excelize.NewFile()
    // Create a new sheet.
    index := f.NewSheet("sheet1")
    // Set value of a cell.
    f.SetCellValue("sheet1", "A2", "Hello world.")
    f.SetCellValue("sheet1", "B2", 100)
    // Set active sheet of the workbook.
    f.SetActiveSheet(index)
    // Save xlsx file by the given path.
    if err := f.SaveAs("Book2.xlsx"); err != nil {
        println(err.Error())
    }
}

就是每次生成的文件打开时总是提示一个框

image.png

点击“是”后弹出另外一个框

image.png

然后再点击删除才能正常操作excel文件。

对代码多次阅读都没有发现问题。严格参考github.com/360EntSecGroup-Skylar中的readme文件中的代码后,尝试修改代码如下

package main

import excelize "github.com/360EntSecGroup-Skylar/excelize/v2"

func main() {
    Main1()
}
func Main1() {
    f := excelize.NewFile()
    // Create a new sheet.
    index := f.NewSheet("Sheet1")
    // Set value of a cell.
    f.SetCellValue("Sheet1", "A2", "Hello world.")
    f.SetCellValue("Sheet1", "B2", 100)
    // Set active sheet of the workbook.
    f.SetActiveSheet(index)
    // Save xlsx file by the given path.
    if err := f.SaveAs("Book2.xlsx"); err != nil {
        println(err.Error())
    }
}

再次运行后,上述问题消失。

两个代码区别主要在于使用了两个不同的参数"sheet1"和"Sheet1", 大部分程序员眼里看,这两个只是两个不同的字符串,不应该影响功能。但是上面的试验告诉我们微软的Excel程序可是认“Sheet1”这个参数。

分享到: