[Go][Excelize] 確定儲存格值是否有刪除線

王林
發布: 2024-08-27 06:36:32
原創
571 人瀏覽過

簡介

我想確定儲存格的值是否有刪除線。

[Go][Excelize] Determining if a cell

確定儲存格的值是否有刪除線

要確定儲存格的值是否有刪除線,我必須透過兩種方式取得儲存格樣式。

如果只有單元格的某些值被刪除,例如“A1”,我應該從“excelize.RichTextRun”取得單元格樣式。
如果單元格中的所有值都像“A2”一樣被刪除,我應該從“excelize.xlsxXf”獲得單元格樣式。

xlsxReader.go

package main import ( "fmt" "log" "github.com/xuri/excelize/v2" ) func GetCellStyles(filePath string) { xlFile, err := excelize.OpenFile(filePath) if err != nil { fmt.Println(err) } defer func() { // Close the spreadsheet. if err := xlFile.Close(); err != nil { fmt.Println(err) } }() sheetName := xlFile.GetSheetName(0) log.Println(sheetName) printCellStyles(xlFile, sheetName, "A1") printCellStyles(xlFile, sheetName, "A2") printCellStyles(xlFile, sheetName, "A3") } func printCellStyles(xlFile *excelize.File, sheetName string, cellAddress string) { log.Printf("--------%s--------", cellAddress) value, _ := xlFile.GetCellValue(sheetName, cellAddress) log.Println(value) // If the cell value has multiple formats, "GetCellRichText" will return multiple values. runs, _ := xlFile.GetCellRichText(sheetName, cellAddress) if len(runs) > 0 { for _, r := range runs { if r.Font == nil { log.Printf("Value: %s No fonts", r.Text) } else { log.Printf("Value: %s Strike through?: %t", r.Text, r.Font.Strike) } } } styleID, _ := xlFile.GetCellStyle(sheetName, cellAddress) // Get cell style info by styleID style := xlFile.Styles.CellXfs.Xf[styleID] // Get font info by style.FontID font := xlFile.Styles.Fonts.Font[*style.FontID] // Check if font.Strike != nil && *font.Strike.Val { log.Println("The cell value has a strike through") } else { log.Println("The cell value doesn't have a strike through") } }
登入後複製

結果

2024/08/27 03:02:32 Sheet1 2024/08/27 03:02:32 --------A1-------- 2024/08/27 03:02:32 123abc 2024/08/27 03:02:32 Value: 12 No fonts 2024/08/27 03:02:32 Value: 3ab Strike through?: true 2024/08/27 03:02:32 Value: c Strike through?: false 2024/08/27 03:02:32 The cell value doesn't have a strike through 2024/08/27 03:02:32 --------A2-------- 2024/08/27 03:02:32 aiu 2024/08/27 03:02:32 The cell value has a strike through 2024/08/27 03:02:32 --------A3-------- 2024/08/27 03:02:32 abc def ghi 2024/08/27 03:02:32 Value: abc No fonts 2024/08/27 03:02:32 Value: def Strike through?: false 2024/08/27 03:02:32 Value: Strike through?: false 2024/08/27 03:02:32 Value: ghi Strike through?: false 2024/08/27 03:02:32 The cell value doesn't have a strike through
登入後複製

資源

  • 儲存格 - Excelize 文件
  • xlsx/tutorial/tutorial.adoc - tealeg/xlsx - GitHub

以上是[Go][Excelize] 確定儲存格值是否有刪除線的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!