码迷,mamicode.com
首页 > 其他好文 > 详细

1、创建一个空白的xls和xlsx文件

时间:2015-06-02 13:12:08      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

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();

1、创建一个空白的xls和xlsx文件

标签:

原文地址:http://www.cnblogs.com/caoyc/p/4545903.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!