0

ASP.NET/VB.NET 経由で ClosedXML を使用して、XLSX ファイルをデータベースにインポートしています。私の顧客は単一セルのフォーマットを維持する必要があるため、解決策はセルの RichText プロパティを使用することです。

RichText オブジェクトを HTML 文字列に変換するコードを書きましたが、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 で作成したファイルと一致しています。
ただし、テーマの色は 16 進数の色ではないことに注意してください。

于 2014-01-09T09:46:37.103 に答える