标签:
1、创建一个空白的xls文件
Step1:先引入库NPOI.dll文件
Step2:
①:实例化一个workbook,实为在内存表中创建一个xls文件
NPOI.HSSF.UserModel.HSSFWorkbook workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
但是,如果打开此时的workbook会报错,原因是至少需要包含一个Sheet
②:创建一个Sheet,如果方法不带参数,系统自动给出SheetName,带一个参数表示自定义SheetName
NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet("Sheet1");
③:最后就是把这个HSSFWorkbook实例写入文件了,代码也很简单,如下所示:
FileStream fs = new FileStream("1.xls", FileMode.Create); workbook.Write(fs); fs.Close();
*************************************************************************************
2:创建一个空白的xlsx文件
step1:先导入所需要的dll文件
NPOI.dll
NPOI.OOXML.dll
NPOI.OpenXml4Net.dll
NPOI.OpenXmlFormats.dll
ICSharpCode.SharpZipLib.dll
step2:具体代码实现
NPOI.XSSF.UserModel.XSSFWorkbook workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(); workbook.CreateSheet("Sheet1"); FileStream fs = new FileStream("1.xlsx", FileMode.Create); workbook.Write(fs); fs.Close();
**********************************************************
3:自动识别xls和xlsx文件
NPOI的版本号之所以从1.2.5直接跳到2.0,很大原因是对Office 2007格式的支持,也正因为如此,使用NPOI 2.0会比以前的版本显得稍微复杂些,因为NPOI同时提供了多个命名空间的库,包括HSSF(Excel 2003), XSSF(Excel 2007), XWPF(Word 2007)。
为了能够在读取时自动识别Excel格式,而不是由你自己去判断,NPOI提供了一个非常方便的类NPOI.SS.WorkbookFactory。
public class WorkbookFactory { public static IWorkbook Create(POIFSFileSystem fs){...} public static IWorkbook Create(OPCPackage pkg){...} public static IWorkbook Create(Stream inputStream){...} public static IFormulaEvaluator CreateFormulaEvaluator(IWorkbook workbook){...} }
这里先介绍下POIFSFileSystem和OPCPackage的区别,POIFSFileSystem即OLE2 格式(俗称ActiveX文档格式)的读写库,OPCPackage即OOXML格式的读写库,两套库分别用于Excel 2003和Excel 2007,当然由于是底层库,他们不局限于读取xls和xlsx格式,例如你可以用POIFSFileSystem读取Thumb.db文件格式,具体可参考这里。
知道了POIFSFileSystem和OPCPackage的区别,你应该知道第一、第二个方法是干嘛的了吧,没错,这两个是需要你自己主动判断打开的文件是啥类型的,然后把读到的文件系统传给WorkbookFactory,它会自动根据文件系统的类型返回HSSFWorkbook或XSSFWorkbook,但因为这两个类都实现了IWorkbook接口,所以大部分情况下你不需要去关心你到底在操作哪个类的实例,除非你用到了Excel 2007特有的一些功能时,才需要强类型转换成XSSFWorkbook。
第三个方法则是今天要介绍的重点,它具有自动识别功能,只要你传Stream对象进去,它就能知道你传进去的到底是xls还是xlsx,然后返回相应的实例。
最后一个则是返回公式计算对象的,原理类似。HSSF和XSSF都有一个公式计算类,分别是HSSFFormulaEvaluator和XSSFFormulaEvaluator。
自动识别导入的xls和xlsx文件,代码如下
FileStream fs = File.OpenRead("1.xlsx"); NPOI.SS.UserModel.IWorkbook workbook= NPOI.SS.UserModel.WorkbookFactory.Create(fs); MessageBox.Show(workbook.GetSheetAt(0).GetRow(0).GetCell(0).StringCellValue); fs.Close();
标签:
原文地址:http://www.cnblogs.com/caoyc/p/4545903.html