尝试查找应用于文本的字体时,NPOI API调用中的空引用
我有这个例子:
IRichTextString richText = cell.RichStringCellValue; for (int index = 0; index < richText.String.Length; index++) { short fontId = richText.GetFontAtIndex(index); ... }
当第一次调用GetFontAtIndex(index = 0)时,我得到的对象引用没有设置为对象的一个实例 :
NPOI.XSSF.UserModel.XSSFRichTextString.ToCTFont(CT_RPrElt pr)at NPOI.XSSF.UserModel.XSSFRichTextString.GetFontOfFormattingRun(Int32 index)
该文件具有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;