NPOI 创建 Excel 出错“此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。关闭其他文档再试一次可能有用。”
NPOI 是从 POI 发展来的,POI 是 Java 平台下操作 Word、Excel 的类库,NPOI 是 .NET 2.0 平台下操作 Excel 的类库(Word 没开发下去)。
用 NPOI 操作 Excel 优点是:速度很快,比 Office 接口快多了,且不需要安装 Office;功能强,比如合并单元格、设置字体、设置边框、设置打印等。
NPOI 在创建 Excel 时遇到大数据时,打开 Excel 出错:
“此文件中的某些文本格式可能已经更改,因为它已经超出最多允许的字体数。关闭其他文档再试一次可能有用。”
这是由于 NPOI 在 Excel 中创建了过多的字体造成的,就是 Workbook.CreateFont() 那句,可能被频繁调用了。注意,即使 CreateFont 创建的对象,没有使用,也是存在起来了的。
所以,如果字体是一样的,就不要再继续创建新的 NPOI.SS.UserModel.Font 了,直接用上次创建的吧。