Quiero determinar si el valor de una celda está tachado.
Para determinar si el valor de una celda está tachado, tengo que obtener estilos de celda de dos maneras.
Si solo algunos valores de una celda están tachados como "A1", debería obtener estilos de celda de "excelize.RichTextRun".
Si todos los valores de una celda están tachados como "A2", debería obtener un estilo de celda de "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
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3