首页 > 代码库 > NPOI操作Excel 003:写入空Excel
NPOI操作Excel 003:写入空Excel
对于NPOI操作Excel前面已经有了简单认识(http://blog.csdn.net/yysyangyangyangshan/article/details/42614209)。继续来看如何将内容保存至Excel中。
根据前面的经验NPOI操作Excel主要的几个对象分别是:
workbook,sheet以及sheet内的row和cell。
所以保存至Excel也是对这几个对象进行操作。当然我们平时使用Excel时不光要在单元格中保存内容,还要设置单元格的格式以及字体大小等,也就是格式和样式。这些在NPOI组件中都有对应的方法。
下面看一个简单的例子:讲DataTable内容连同表头都保存至Excel中,从代码中来看如何操作Excel。
首先,准备工作,需要用到的Dll,同前文一样,只要引用至工程中即可。
http://blog.csdn.net/yysyangyangyangshan/article/details/42614181
然后我们看如何使用。
看下面这段代码,
按照顺序,
依次是:创建Excel文件,利用workbook,sheet找到当前的sheet页面,然后创建行,列,并且在指定的行列上写入内容;最后用文件流保存。
使用很简单,只要记住几个关键的对象:HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell就可以对Excel进行读写了。
如果想让excel的排版和格式更好看,那就再使用一些比如HSSFCellStyle,HSSFFont等进行修饰修饰。
最终保存至Excel中的内容效果如下:
代码下载:http://download.csdn.net/detail/yysyangyangyangshan/8373785
根据前面的经验NPOI操作Excel主要的几个对象分别是:
workbook,sheet以及sheet内的row和cell。
所以保存至Excel也是对这几个对象进行操作。当然我们平时使用Excel时不光要在单元格中保存内容,还要设置单元格的格式以及字体大小等,也就是格式和样式。这些在NPOI组件中都有对应的方法。
下面看一个简单的例子:讲DataTable内容连同表头都保存至Excel中,从代码中来看如何操作Excel。
首先,准备工作,需要用到的Dll,同前文一样,只要引用至工程中即可。
http://blog.csdn.net/yysyangyangyangshan/article/details/42614181
然后我们看如何使用。
看下面这段代码,
protected void Btn_WriteExcel(object sender, EventArgs e) { //要保存的内容,此处用代码生成的内容,而在实际中可以是数据库读取的, //亦或是页面输入的内容 DataTable dt = new DataTable(); dt.Columns.Add("序号"); dt.Columns.Add("姓名"); dt.Columns.Add("年龄"); dt.Columns.Add("职位"); for (int i = 0; i < 5; i++) { DataRow row = dt.NewRow(); row["序号"] = i + 1; row["姓名"] = "Test"+i ; row["年龄"] = 25 + i; row["职位"] = i % 2 == 0 ? "工程师" : "经理"; dt.Rows.Add(row); } //为了更好的看如何使用NPOI,此处显示两行标题。 //显示标题可以看如何合并单元格 string mainTitle = "主标题"; string secondTitle = "副标题"; //保存的Excel路径,文件名用guid生成 string fileIndex = HttpRuntime.AppDomainAppPath.ToString(); string tempExcel = fileIndex + @"\ExcelFile\{0}.xls"; tempExcel = string.Format(tempExcel, System.Guid.NewGuid()); int rowIndex = 0; //操作Excel的几个主要对象,此处声明 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.CreateSheet(); //row0和row1是两行标题 HSSFRow row0 = sheet.CreateRow(rowIndex); HSSFCell cell0 = row0.CreateCell(0); cell0.SetCellValue(mainTitle); HSSFCellStyle style = workbook.CreateCellStyle(); style.Alignment = CellHorizontalAlignment.CENTER; HSSFFont font = workbook.CreateFont(); font.Boldweight = short.MaxValue; style.SetFont(font); cell0.CellStyle = style; //此处合并单元格 sheet.AddMergedRegion(new NPOI.HSSF.Util.CellRangeAddress(rowIndex,rowIndex,0,5)); rowIndex++; HSSFRow row1 = sheet.CreateRow(rowIndex); HSSFCell cell1 = row1.CreateCell(0); cell1.SetCellValue(secondTitle); cell1.CellStyle = style; sheet.AddMergedRegion(new NPOI.HSSF.Util.CellRangeAddress(rowIndex, rowIndex, 0, 5)); //因为列名已经指定,占一行 rowIndex++; //这一行显示表头 HSSFRow row2 = sheet.CreateRow(rowIndex); int row2cellIndex = 0; foreach (DataColumn col in dt.Columns) { HSSFCell cell = row2.CreateCell(row2cellIndex); cell.SetCellValue(col.ColumnName.ToString()); row2cellIndex++; } rowIndex++; //datatable的内容 for(int i= 0;i< dt.Rows.Count;i++) { HSSFRow row = sheet.CreateRow(rowIndex); foreach (DataColumn col in dt.Columns) { row.CreateCell(col.Ordinal).SetCellValue(dt.Rows[i][col].ToString()); } rowIndex++; } //使用文件流保存 MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Flush(); ms.Position = 0; workbook = null; sheet = null; FileStream fs = new FileStream(tempExcel,FileMode.Create,FileAccess.ReadWrite); ms.WriteTo(fs); fs.Close(); ms.Close(); }
按照顺序,
依次是:创建Excel文件,利用workbook,sheet找到当前的sheet页面,然后创建行,列,并且在指定的行列上写入内容;最后用文件流保存。
使用很简单,只要记住几个关键的对象:HSSFWorkbook,HSSFSheet,HSSFRow,HSSFCell就可以对Excel进行读写了。
如果想让excel的排版和格式更好看,那就再使用一些比如HSSFCellStyle,HSSFFont等进行修饰修饰。
最终保存至Excel中的内容效果如下:
代码下载:http://download.csdn.net/detail/yysyangyangyangshan/8373785
NPOI操作Excel 003:写入空Excel
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。