NPOI操作Excel 005:写入空Excel(Winform版)
来源:互联网 发布:广电直播软件 编辑:程序博客网 时间:2024/06/04 23:35
前文写了一个BS版本的导出Excel的例子(http://blog.csdn.net/yysyangyangyangshan/article/details/47904119),对于CS版在保存的地方有少许改动,直接看代码如下:
使用保存对话框进行保存:
工程下载:http://download.csdn.net/detail/yysyangyangyangshan/9039017
private void button1_Click(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 = System.AppDomain.CurrentDomain.BaseDirectory; 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; FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.Description = "请选择文件路径"; if (dialog.ShowDialog() == DialogResult.OK) { string saveFile = dialog.SelectedPath+@"\TestExcel.xls"; using (FileStream fs = new FileStream(tempExcel, FileMode.Create, FileAccess.ReadWrite)) { ms.WriteTo(fs); } File.Copy(tempExcel, saveFile, true); MessageBox.Show("导出成功!"); } if (File.Exists(tempExcel)) { File.Delete(tempExcel); } ms.Close(); }
使用保存对话框进行保存:
FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.Description = "请选择文件路径"; if (dialog.ShowDialog() == DialogResult.OK) { string saveFile = dialog.SelectedPath+@"\TestExcel.xls"; using (FileStream fs = new FileStream(tempExcel, FileMode.Create, FileAccess.ReadWrite)) { ms.WriteTo(fs); } File.Copy(tempExcel, saveFile, true); MessageBox.Show("导出成功!"); }这样在窗口中也可以实现导出Excel。
工程下载:http://download.csdn.net/detail/yysyangyangyangshan/9039017
1 0
- NPOI操作Excel 005:写入空Excel(Winform版)
- NPOI操作Excel 003:写入空Excel
- NPOI操作Excel 004:写入空Excel(增加保存提示框)
- 【NPOI系列】一:Excel写入
- NPOI 进行EXCEL操作
- 用NPOI操作Excel
- C# NPOI 操作excel
- NPOI操作EXCEL
- NPOI操作Excel
- C# NPOI 操作excel
- NPOI 操作Excel
- NPOI 操作Excel
- NPOI操作Excel
- NPOI操作EXCEL
- NPOI操作Excel表格
- Npoi操作excel
- Npoi操作excel
- 使用NPOI操作excel
- Android各层打印栈的方法
- Java反射机制初涉
- HDU 杭电2501 Tiling_easy version【规律题】
- linux-fdisk/mke2fs/dumpe2fs/fsck
- 写给同事的前端学习路线<转>
- NPOI操作Excel 005:写入空Excel(Winform版)
- 51 N-Queens
- 内部存储的读操作及使用API获得路径
- 指向数组的指针
- Objective-C入门教程——Done!
- 拓扑排序
- [C++]Remove Duplicates from Sorted List 从已排序的链表中移除重复元素
- windons 下如何使用c compiler加cython 加速 word2vec!!!
- 这次带来的小程序是:确定一个字符串有多少个单词,然后最长单词和最短单词有哪些