NPOI开发包下载:http://pan.baidu.com/share/link?shareid=4025220936&uk=2837994235
需要命名空间
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
先简单介绍下NPOI,Workbook工作簿,Sheet页,row行,cell:单元格;这些名字都是有用的,
首先为什么要用的NPOI呢?这是因为,它效率比较高点,而且可以完全脱离Excel表格软件直接可以导出,方便吧,以前的(就不解释了)需要本地安装Excel表格软件,需要软件支持,版本不同还不行,所以,很受限制的,这个就不需要了,导入NPOI.dll程序集,就可以对想要的数据导出格式为.xls的了,不需要本地另外安装,方便多了,好了,不多说了,看例子:
HSSFWorkbook hssfworkbook = new HSSFWorkbook();//实例化一个表格
ISheet sheet1 = hssfworkbook.CreateSheet("俺的第一页");//创建Excel的一页
IRow rowHeader = sheet1.CreateRow(0);//创建表头,就是Excel中的第一行
rowHeader.CreateCell(0, CellType.STRING).SetCellValue("姓名");//Excel中的第一行
rowHeader.CreateCell(1, CellType.STRING).SetCellValue("年龄");
rowHeader.CreateCell(2, CellType.STRING).SetCellValue("性别");
IRow row2 = sheet1.CreateRow(1);//从Excel第二行,就开始是真正的数据啦
row2.CreateCell(3, CellType.STRING).SetCellValue("啦啦啦");//这是在Excel中的第1行第3列
using (Stream stream = File.OpenWrite("d:/1.xls"))
{
hssfworkbook.Write(stream);
}
来看看导出的是什么样子的?----
//这里面有点注意的是:日期格式的比较特殊,需要另加处理,
//日期类型,日期类型比较特殊
//row.CreateCell(4, CellType.NUMERIC).SetCellValue(2013-10-10);//这样是不行的,好,继续,底下多弄几条数据好好感受下
ICellStyle styledate = hssfworkbook.CreateCellStyle();//指定格式
IDataFormat format = hssfworkbook.CreateDataFormat();
//格式具体有哪些请看单元格右键中的格式,有说明
styledate.DataFormat = format.GetFormat("yyyy\"年\"m\"月\"d\"日\"");
List<ICell> cellInDate = new List<ICell>();
cellInDate.Add(row.CreateCell(8, CellType.NUMERIC));//出生日期
cellInDate.Add(row.CreateCell(9, CellType.NUMERIC));//入职日期
cellInDate.Add(row.CreateCell(18, CellType.NUMERIC));//合同起始时间
cellInDate.Add(row.CreateCell(19, CellType.STRING));//合同结束时间
for (int j = 0; j < cellInDate.Count; j++)
{
cellInDate[j].CellStyle = styledate;
if (j == 0)
{
cellInDate[j].SetCellValue(employee.BirthDay);//出生日期,这些都是自己定义的,员工的出生日期
}
else if (j == 1)
{
cellInDate[j].SetCellValue(employee.InDate);//入职日期
}
else if (j == 2)
{
cellInDate[j].SetCellValue(employee.ContractStartDay);//合同起始时间
}
else if (j == 3)
{
cellInDate[j].SetCellValue(employee.ContractEndDay);//合同结束时间
}