我通过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
&#34; rts1.FontColor&#34;永远不会返回正确的颜色。我也尝试过像SpreadsheetLight这样的其他库,但结果相同:电子表格单元格中的富文本没有颜色。
有什么想法吗?
答案 0 :(得分: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中制作的文件一致 但请注意,主题中的颜色不会产生十六进制颜色。