ASP.NET中Excel的导入和导出
2018-01-28 22:59
429 查看
导入
导出
导入导出功能一般是安装第三方组件实现的。
安装微软的Office太不友好就不考虑了,简单说下一般方法。
什么是CSV文件?
CSV是字符分隔值文件。
一般以英文逗号分割一行的值。
纯文本文件被广泛地兼容。
建立一个txt文件,后缀名改为csv,可以看见默认是用Excel打开的。开打效果和xls文件一样。
思路:将数据使用逗号和换行符拼接成字符串,转化为字节数组,然后设置输出的Header头文件的字节长度、Mime类型为Excel、文件名,然后输出字节数组。
CSV注意点:
1.数字都以科学计数法来标记。要将数字转化为文本类型请使用英文的单引号。
2.空值单元格也要写。
3.其它详情请查阅相关文件。
导出
导入导出功能一般是安装第三方组件实现的。
安装微软的Office太不友好就不考虑了,简单说下一般方法。
导入
导入的话可以使用组件。使用NPOI组件是一个不错的选择。NPOI官网教程http://npoi.codeplex.com/SourceControl/latest导出
导出分两种情况:本地Excel文件导出的话直接导出就ok了,但是一般是从数据库读取数据后导出为Excel文件的。使用上面的组件NPOI也可以。这里介绍另一种方法:导出CSV文件。什么是CSV文件?
CSV是字符分隔值文件。
一般以英文逗号分割一行的值。
纯文本文件被广泛地兼容。
建立一个txt文件,后缀名改为csv,可以看见默认是用Excel打开的。开打效果和xls文件一样。
思路:将数据使用逗号和换行符拼接成字符串,转化为字节数组,然后设置输出的Header头文件的字节长度、Mime类型为Excel、文件名,然后输出字节数组。
/// <summary> /// 输出CSV文件 /// </summary> public class ExcelHelper { public void ExportExcel(DataTable dt) { MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms, Encoding.GetEncoding("GB2312")); StringBuilder strbu = new StringBuilder(); //标题 for (int i = 0; i < dt.Columns.Count; i++) { strbu.Append(dt.Columns[i].ColumnName.ToString() + "\t"); } //加入换行字符串 strbu.Append(Environment.NewLine); //写入内容 for (int i = 0; i < dt.Rows.Count; i++) { for (int j = 0; j < dt.Columns.Count; j++) { strbu.Append(dt.Rows[i][j].ToString() + "\t"); } strbu.Append(Environment.NewLine); } sw.Write(strbu.ToString()); sw.Flush(); sw.Close(); sw.Dispose(); //转换为字节数组 byte[] bytes = ms.ToArray(); ms.Close(); ms.Dispose(); OutputClient(bytes); } public void OutputClient(byte[] bytes) { HttpResponse response = HttpContext.Current.Response; response.Buffer = true; response.Clear(); response.ClearHeaders(); response.ClearContent(); response.ContentType = "application/vnd.ms-excel"; response.AddHeader("Content-Length",bytes.Length.ToString()); response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"))); response.Charset = "GB2312"; response.ContentEncoding = Encoding.GetEncoding("GB2312"); response.BinaryWrite(bytes); response.Flush(); response.Close(); } }
CSV注意点:
1.数字都以科学计数法来标记。要将数字转化为文本类型请使用英文的单引号。
2.空值单元格也要写。
3.其它详情请查阅相关文件。
相关文章推荐
- Asp.Net使用Npoi导入导出Excel的方法
- asp.net导入导出EXCEL
- asp.net 导入和导出Excel
- asp.net Excel导入和导出
- ASP.NET中导入和导出标准Excel文件(转)
- [导入]asp.net 把datatable的数据导出到EXCEL
- ASP.Net MVC利用NPOI导入导出Excel - RuleLu
- ASP.NET导出导入Excel
- ASP.NET Excel 2010数据导入与导出
- asp.net怎样使用NPOI 导出到excel和从excel导入到数据库
- Excel导入导出,生成和下载Excel报表、附件等操作--ASP.NET
- 【飞秋】ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
- asp.net 客户端导出excel 真正的excel 可以导入 源码
- ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
- ASP.NET中导入和导出标准Excel文件
- c#.net 使用NPOI导入导出标准Excel (asp.net winform csharp)
- ASP.NET NPOI Excel导入、导出,高级、全面、总结版
- Asp.net导入导出Excel总结
- asp.net如何实现excel导入到sql或者根据需要再将sql中的数据导出到excel表格中
- asp.net Excel导入和导出