셀 값에 취소선이 있는지 확인하고 싶습니다.
셀 값에 취소선이 있는지 확인하려면 두 가지 방법으로 셀 스타일을 가져와야 합니다.
"A1"처럼 셀의 일부 값만 취소 처리된 경우 "excelize.RichTextRun"에서 셀 스타일을 가져와야 합니다.
셀의 모든 값이 "A2"처럼 취소선으로 처리된 경우 "excelize.xlsxXf"에서 셀 스타일을 가져와야 합니다.
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] 셀 값에 취소선이 있는지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!