使用 excelize Golang 时公式错误
Bad formula when using excelize Golang
我在使用这样的公式时遇到错误 [file.SetCellFormula(sheetName, "A6", "=IF(C6<>\"\";IF(OR((F6-E6)>0;G6<>\"\";J6>0);\"O\";\"X\");\"\")")]
,我确定公式是正确的,我从工作 excel 文件中复制了这个公式
func excel() error {
sheetName := "022022"
if IsFileExists("./excels/Rikai_TimeSheet_202202_SonNguyen.xlsx") {
err := os.Remove("./excels/Rikai_TimeSheet_202202_SonNguyen.xlsx")
if err != nil {
return err
}
}
file, err := excelize.OpenFile("./excels/Rikai_TimeSheet_202202_SonNguyen_template.xlsx")
if err != nil {
return err
}
defer func() {
_ = file.Close()
}()
err = file.SetCellFormula(sheetName, "A6", "=IF(C6<>\"\";IF(OR((F6-E6)>0;G6<>\"\";J6>0);\"O\";\"X\");\"\")")
if err != nil {
return err
}
f, err := os.OpenFile("./excels/Rikai_TimeSheet_202202_SonNguyen.xlsx", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600)
if err != nil {
return err
}
err = file.Write(f)
if err != nil {
return err
}
return nil
}
Error popup when open the file
尝试用逗号 (,) 替换那些分号 (;)。
(一般来说,始终使用美国标准,而不是您当地的标准)
尝试使用反引号 ` 而不是转义引号:
err = file.SetCellFormula(sheetName, "A6", `=IF(C6<>"";IF(OR((F6-E6)>0;G6<>"";J6>0);"O";"X");"")`)
我在使用这样的公式时遇到错误 [file.SetCellFormula(sheetName, "A6", "=IF(C6<>\"\";IF(OR((F6-E6)>0;G6<>\"\";J6>0);\"O\";\"X\");\"\")")]
,我确定公式是正确的,我从工作 excel 文件中复制了这个公式
func excel() error {
sheetName := "022022"
if IsFileExists("./excels/Rikai_TimeSheet_202202_SonNguyen.xlsx") {
err := os.Remove("./excels/Rikai_TimeSheet_202202_SonNguyen.xlsx")
if err != nil {
return err
}
}
file, err := excelize.OpenFile("./excels/Rikai_TimeSheet_202202_SonNguyen_template.xlsx")
if err != nil {
return err
}
defer func() {
_ = file.Close()
}()
err = file.SetCellFormula(sheetName, "A6", "=IF(C6<>\"\";IF(OR((F6-E6)>0;G6<>\"\";J6>0);\"O\";\"X\");\"\")")
if err != nil {
return err
}
f, err := os.OpenFile("./excels/Rikai_TimeSheet_202202_SonNguyen.xlsx", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0600)
if err != nil {
return err
}
err = file.Write(f)
if err != nil {
return err
}
return nil
}
Error popup when open the file
尝试用逗号 (,) 替换那些分号 (;)。
(一般来说,始终使用美国标准,而不是您当地的标准)
尝试使用反引号 ` 而不是转义引号:
err = file.SetCellFormula(sheetName, "A6", `=IF(C6<>"";IF(OR((F6-E6)>0;G6<>"";J6>0);"O";"X");"")`)