无OFFICE datatable导出csv表格(execl格式)(附NPOI,MyXls 方法)
来源:互联网 发布:数据库脑裂 编辑:程序博客网 时间:2024/06/06 09:35
还是当初毕业设计的用的东西,正好翻出来了,在这里记下来。
当时有一个导出execl的功能,网上找了大多都是利用Office接口之类的解决方法,但无奈电脑没有安装Office,只有一个WPS系列(不得不说,WPS还是蛮好用的,没有Office那么臃肿,也不用四处找破解,功能方面,反正我用足够了),那时候也不知道NPOI之类的东西,后来网上找了半天,搞出个这么个东西,虽然很不完善,倒也满足了当时的需求
private void button1_Click(object sender, EventArgs e) { DataTable dt = (DataTable)dgSeaResult.DataSource; SaveFileDialog save = new SaveFileDialog(); //设置文件类型 save.Filter = "全部文件(*.*)|*.*|表格文件(*.csv)|*.csv"; //设置默认文件类型显示顺序 save.FilterIndex = 2; //保存对话框是否记忆上次打开的目录 save.RestoreDirectory = true; if (save.ShowDialog() ==DialogResult.OK) { string strPath = save.FileName.ToString();//保存到指定目录下 if (File.Exists(strPath)) { File.Delete(strPath); } //先打印标头 StringBuilder strColu = new StringBuilder(); StringBuilder strValue = new StringBuilder(); int i = 0; try { StreamWriter sw = new StreamWriter(new FileStream(strPath, FileMode.CreateNew), Encoding.GetEncoding("GB2312")); for (i = 0; i <= dt.Columns.Count - 1; i++) { strColu.Append(dt.Columns[i].ColumnName); strColu.Append(","); } strColu.Remove(strColu.Length - 1, 1);//移出掉最后一个,字符 sw.WriteLine(strColu); foreach (DataRow dr in dt.Rows) { strValue.Remove(0, strValue.Length);//移出 for (i = 0; i <= dt.Columns.Count - 1; i++) { strValue.Append(dr[i].ToString()); strValue.Append(","); } strValue.Remove(strValue.Length - 1, 1);//移出掉最后一个,字符 sw.WriteLine(strValue); } sw.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } System.Diagnostics.Process.Start(strPath); } }
下面附上现在很流行的 NPOI 和 MyXls 的导出方法,同样不需要OFFICE支持,以下为转载内容:
/// MyXls简单Demo,快速入门代码/// </summary>/// <param name="dtSource"></param>/// <param name="strFileName"></param>/// <remarks>MyXls认为Excel的第一个单元格是:(1,1)</remarks>/// <Author>柳永法 http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>public static void ExportEasy(DataTable dtSource, string strFileName){ XlsDocument xls = new XlsDocument(); Worksheet sheet = xls.Workbook.Worksheets.Add("Sheet1"); //填充表头 foreach (DataColumn col in dtSource.Columns) { sheet.Cells.Add(1, col.Ordinal + 1, col.ColumnName); } //填充内容 for (int i = 0; i < dtSource.Rows.Count; i++) { for (int j = 0; j < dtSource.Columns.Count; j++) { sheet.Cells.Add(i + 2, j + 1, dtSource.Rows[i][j].ToString()); } } //保存 xls.FileName = strFileName; xls.Save();}
/// NPOI简单Demo,快速入门代码/// </summary>/// <param name="dtSource"></param>/// <param name="strFileName"></param>/// <remarks>NPOI认为Excel的第一个单元格是:(0,0)</remarks>/// <Author>柳永法 http://www.yongfa365.com/ 2010-5-8 22:21:41</Author>public static void ExportEasy(DataTable dtSource, string strFileName){ HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.CreateSheet(); //填充表头 HSSFRow dataRow = sheet.CreateRow(0); foreach (DataColumn column in dtSource.Columns) { dataRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName); } //填充内容 for (int i = 0; i < dtSource.Rows.Count; i++) { dataRow = sheet.CreateRow(i + 1); for (int j = 0; j < dtSource.Columns.Count; j++) { dataRow.CreateCell(j).SetCellValue(dtSource.Rows[i][j].ToString()); } } //保存 using (MemoryStream ms = new MemoryStream()) { using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write)) { workbook.Write(fs); } } workbook.Dispose();}
NPOI开源地址:http://npoi.codeplex.com/
NPOI中文文档:http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html
MyXls开源地址:http://sourceforge.net/projects/myxls/
- 无OFFICE datatable导出csv表格(execl格式)(附NPOI,MyXls 方法)
- .net 通过NPOI或MyXls把DataTable导出到Excel
- .net 通过NPOI或MyXls把DataTable导出到Excel
- .net 使用NPOI或MyXls把DataTable导出到Excel
- .net 使用NPOI或MyXls把DataTable导出到Excel
- .net 使用NPOI或MyXls把DataTable导出到Excel
- .net 通过NPOI或MyXls把DataTable导出到Excel
- .net 使用NPOI或MyXls把DataTable导出到Excel
- 用 ajax 导出 execl 生成csv格式
- .net 使用NPOI或MyXls把DataTable导出到Excel Excel导入及导出
- NPOI将EXECL变成DataTable
- NPOI导出方法不依赖Office COM组件
- Aspose.Cells、NPOI、MyXls导出Excel
- datatable 导出到Execl
- 将Datatable导出到Excel三种方案以及分析(无NPOI)
- 通过NPOI导入Execl返回DataTable
- Npoi导出excel整理(附源码)
- Npoi导出excel整理(附源码)
- asterisk PRI 外呼权限问题
- SpringMVC入门配置和试用
- 学Java请不要做浮躁的人
- Star Schema Benchmark(SSB)
- 治疗便秘的30种秘方
- 无OFFICE datatable导出csv表格(execl格式)(附NPOI,MyXls 方法)
- Parallel Capabilities of Oracle Data Pump (Doc ID 365459.1)
- 人体穴位自我按摩
- AVI格式解说
- Example PBS Script
- 通过DOM,包括CSS样式表
- 生活科学小常识
- url参数中有+、空格、=、%、&、#等特殊符号的问题解决
- gvim配置