2010-09-30 59 views
1

我试图在Winforms应用程序中使用NPOI library。我已经在我的项目中引用的最新NPOI DLL并试图重现的例子给了由NPOI和发现SO:NPOI HSSF和SS命名空间

 HSSFWorkbook workbook = new HSSFWorkbook(); 
     HSSFSheet sheet = workbook.CreateSheet("Sheet1"); 
     HSSFRow headerRow = sheet.CreateRow(0); 

但是这不会在我的机器上编译,因为HSSFWorkbook.CreateSheet()返回NPOI.SS.UserModel.Sheet而不是NPOI.SS.UserModel.HSSFSheet的。

我在这里错过了什么?

+1

疯狂的猜测,但你有没有尝试将表格转换成HSSFSheet? – 2010-09-30 13:47:08

+0

您是否明确在项目的引用中添加了库NPOI.dll和NPOI.HSSF.dll?用“使用NPOI.HSSF.UserModel;”在使用中,你的代码完全适合我。我正在使用NPOI 1.2.1.0版 – PierrOz 2010-09-30 13:59:00

+0

我曾尝试过@Nathan,但在代码中进一步发生了一些奇怪的行为,我疯狂地认为这不是正确的解决方案。无论如何,它似乎没有联系。 – Jla 2010-09-30 14:07:59

回答

3

尝试以下操作:

Sheet sheet = workbook.CreateSheet("Sheet1"); 
Row headerRow = sheet.CreateRow(0); 

,包括命名空间NPOI.SS.UserModel

Sheet和实际上接口,但没有I前缀(我相信),因为这个库是从端口Java的。

+0

这似乎也行得通。我没有检查详细的历史记录,但我想他们添加了最新版本的接口。 – Jla 2010-09-30 14:32:25

0

using NPOI.SS.UserModel; ... ISheet sheet = workbook.CreateSheet(“Sheet1”); IRow headerRow = sheet.CreateRow(0);

1

该接口实际上是为NPOI 2.0准备的。在NPOI 2.0中,有两个名称空间:XSSF和HSSF。 XSSF用于xlsx,HSSF用于xls。两者都在NPOI.SS中实现接口。