0

我正在通过 ASP.NET/VB.NET 使用 ClosedXML 将 XLSX 文件导入数据库。我的客户需要保持单个单元格的格式,因此解决方案是使用单元格的 RichText 属性。

我写了一段代码,应该在 HTML 字符串中转换 RichText 对象,但是颜色信息不是从 ClosedXML 返回的(它总是返回 #FFFF3333 无论文本颜色是什么。

这是我的片段:

Shared Function RichTextToHTML(ByVal rt1 As IXLRichText) As String
    'trasforma una string rich text in html
    Dim ret As String = ""
    If rt1.Text <> "" Then
        For Each rts1 As IXLRichString In rt1
            ret &= "<span style='"
            If rts1.Bold Then
                ret &= "font-weight:bold;"
            End If
            If rts1.Strikethrough Then
                ret &= "text-decoration:line-through;"
            End If
            ret &= "color:#" & rts1.FontColor.ToString & ";"
            ret &= "'>" & rts1.Text & "</span>"
        Next
    End If
    Return ret
End Function

“rts1.FontColor”永远不会返回正确的颜色。我也尝试过使用其他库,如 SpreadsheetLight,但结果相同:电子表格单元格内的富文本没有颜色。

任何想法?

4

1 回答 1

0

它对我有用(在带有 C# 的 0.68.1 版本中)。这段代码

IXLCell cell = sheet.Cell(1,1);
cell.RichText.ForEach(rts => Console.WriteLine(rts.Text + " / " + rts.FontColor));

给出输出

red / FFFF0000
blue / Color Theme: Accent5, Tint: 1
green / Color Theme: Accent6, Tint: 1

这与我在 Excel 中制作的文件一致。
但请注意,主题中的颜色不会给出十六进制颜色。

于 2014-01-09T09:46:37.103 回答