我有这个样本:
IRichTextString richText = cell.RichStringCellValue;
for (int index = 0; index < richText.String.Length; index++)
{
short fontId = richText.GetFontAtIndex(index);
...
}
第一次调用GetFontAtIndex(index = 0)时,我得到对象引用没有设置为对象的实例:
at NPOI.XSSF.UserModel.XSSFRichTextString.ToCTFont(CT_RPrElt pr)at at NPOI.XSSF.UserModel.XSSFRichTextString.GetFontOfFormattingRun(的Int32 指数)
该文件具有xlsx扩展名。对于xls,此代码可以正常工作。
也试过这个,没有运气:
for (int i = 0; i < richText.NumFormattingRuns; i++)
{
int startIdx = richText.GetIndexOfFormattingRun(i);
int length = richText.GetLengthOfFormattingRun(i);
IFont font = richText.GetFontOfFormattingRun(i);
...
}
应该在哪里出问题?对于xlsx文件,无法获取文本的字体吗?
修改
该文件由以下内容读取:
IWorkbook iw = WorkbookFactory.Create(new FileStream(excelFilePath, FileMode.Open, FileAccess.Read));
ISheet sheet = iw.GetSheet(sheetName);
for (int j = rowStart; j <= sheet.LastRowNum; j++)
{
IRow row = sheet.GetRow(j);
if (row != null)
{
for (int i = row.FirstCellNum; i < row.LastCellNum; i++)
{
ICell cell = row.GetCell(i);
...
但是单元格对象有很多错误:
我是否必须提供一些参考资料?目前我已经包括:
using NPOI.HSSF.Model;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using NPOI.XSSF.Model;
using NPOI.XSSF.Util;