Я думаю, что в этом случае вам придется выбрать более длинный маршрут.Сначала вам нужно сохранить форматирование значения ячейки, например, дату, валюту и т. Д., А затем извлечь стиль из значения ячейки и встроить значение ячейки под этот стиль.
лучший вариант - написать метод расширения, чтобы получить формат и значение стиля.
Чтобы получить поле, перейдите по этой ссылке Как получить значение ячейки, содержащей дату, и сохранитьисходное форматирование с использованием NPOI
Для стилизации сначала необходимо проверить и найти точный стиль выполнения текста, а затем вернуть значение внутри тега html, метод, приведенный ниже, даст вам идею извлечь стили иззначение ячейки.Код не проверен, возможно, вам придется включить отсутствующую библиотеку.
public void GetStyleOfCellValue()
{
XSSFWorkbook wb = new XSSFWorkbook("YourFile.xlsx");
ISheet sheet = wb.GetSheetAt(0);
ICell cell = sheet.GetRow(0).GetCell(0);
XSSFRichTextString richText = (XSSFRichTextString)cell.RichStringCellValue;
int formattingRuns = cell.RichStringCellValue.NumFormattingRuns;
for (int i = 0; i < formattingRuns; i++)
{
int startIdx = richText.GetIndexOfFormattingRun(i);
int length = richText.GetLengthOfFormattingRun(i);
Console.WriteLine("Text: " + richText.String.Substring(startIdx, startIdx + length));
if (i == 0)
{
short fontIndex = cell.CellStyle.FontIndex;
IFont font = wb.GetFontAt(fontIndex);
Console.WriteLine("Bold: " + (font.IsBold)); // return string <b>my string</b>.
Console.WriteLine("Italics: " + font.IsItalic + "\n"); // return string <i>my string</i>.
Console.WriteLine("UnderLine: " + font.Underline + "\n"); // return string <u>my string</u>.
}
else
{
IFont fontFormat = richText.GetFontOfFormattingRun(i);
Console.WriteLine("Bold: " + (fontFormat.IsBold)); // return string <b>my string</b>.
Console.WriteLine("Italics: " + fontFormat.IsItalic + "\n");// return string <i>my string</i>.
}
}
}