Asp.net怎么导出Excel/Csv文本格式数据?

   刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下

  偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪明了反而有些麻烦,就像如果输入身份证(18位数字)的话那就不行了。超过了11位呢,下面查了些资料总结一下解决方案:

  方法1: 在往excel中添加数据的时候在数据的前面加 单引号,我的是这个方法解决的

  如:Sheet.Cells[iRow, iCol] ="'"+ ds.Tables[0].Rows[iRow - 3][itm.ID].ToString();

  方法2:在样式中添加样式::

  代码如下:

  foreach (DataRow row in tb.Rows){data += "";foreach (DataColumn column in tb.Columns){if (column.ColumnName.Equals("证件编号") || column.ColumnName.Equals("报名编号"))data += "" + row[column].ToString() + "";elsedata += "" + row[column].ToString() + "";}

  方法3:

  ADO.NET读Excel时,会根据该列的前n行数据(n个数来自注册表HKEY_LOCAL_MACHINE/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRows),根据这几行数据的内容来判断该列的类型,这个类型跟Excel中该列的类型无关(文本类型应该是数据前面有一个')。如果这n行中的数据有文本有数字,也就是混合类型,则根据HKEY_LOCAL_MACHINE/Software/Microsoft/Jet/4.0/Engines/Excel/ImportMixedType来取值。如果ImportMixedType值为Text,则该列为文本;如果值为Majority Type,则取数据多的类型。

  为了能把有文本有数字的列正确读出,我们需要把注册表中ImportMixedType项设置为text,TypeGuessRows设置为0(表示要读取所有数据再来判断是否是混合类型)

  另外需注意,IMEX的取值会影响是否使用注册表中ImportMixedType和MAXSCANROWS这两项,如果IMEX=1,则使用,如果为0或者2,则不使用。而IMEX=1是打开的只读连接,所以要正确读取,只能使用只读的方式。

时间: 2024-08-03 22:59:11

Asp.net怎么导出Excel/Csv文本格式数据?的相关文章

Asp.net导出Excel/Csv文本格式数据的方法_实用技巧

刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下 偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪明了反而有些麻烦,就像如果输入身份证(18位数字)的话那就不行了.超过了11位呢,下面查了些资料总结一下解决方案: 方法1: 在往excel中添加数据的时候在数据的前面加 单引号,我的是这个方法解决的 如:Sheet.Cells[iRow, iCol] ="'"+ ds.Tables[0]

asp.net 导出Excel并设置格式(1/2)

asp教程.net 导出excel并设置格式 添加引用:microsoft excel 11.0 object library ; 添加:using microsoft.office.interop.excel; 一.打开excel文件============================   microsoft.office.interop.excel.application excel1 = new microsoft.office.interop.excel.application();

java web-JavaWeb导出Excel,提示格式与文件扩展名不一致

问题描述 JavaWeb导出Excel,提示格式与文件扩展名不一致 下载部分代码如下 我是参考别人的代码,很多地方不懂,希望大牛解答! <%@ page language="java" contentType = " text/html;charset=utf-8" import="java.util.*,java.io.File,java.io.*,java.net.*,com.model.*,com.controller.*" page

定时任务-asp.net定时导出Excel

问题描述 asp.net定时导出Excel 描述:最近在做一个工作流的项目,其中步骤中系统可以在每个月的十五号,三十号自动导出Excel. 附言:网上搜索到好多使用Timer并在global.asax文件中判断并执行代码的方便,我也那么做了,结果还是不可以,这里是否还有其他方法,请大家指教啦. 这是我在Global.asax文件中写的,报错了请指教一下 protected void Application_Start(object sender, EventArgs e) { #region 2

asp.net-小白提问:我想做一个 ASP.net 后台导出Excel 并且设置它的页眉页脚及列宽。大神有例子吗?

问题描述 小白提问:我想做一个 ASP.net 后台导出Excel 并且设置它的页眉页脚及列宽.大神有例子吗? 如图:我想做一个 ASP.net 后台导出Excel 并且设置它的页眉页脚及列宽.大神有例子吗? 解决方案 用NPOI这个类,可以设置页眉页脚,具体google下.

jxl-JXL导出Excel设置日期格式

问题描述 JXL导出Excel设置日期格式 导出的数据显示为#,但是双击之后显示正常.但是格式为自定义,而不是日期格式. 解决方案 将数据导出到excel与日期格式的设置

poi java excel-java poi 导出excel 把一样的数据动态合并单元格

问题描述 java poi 导出excel 把一样的数据动态合并单元格 急求,有一个list数据 导出成 这种格式 公司和年份两列是要有动态合并功能 并且年份合并的时候不能跨公司 有没有大神帮帮忙... HSSFWorkbook workbook = new HSSFWorkbook(); String[] columnNames = new String[]{"编号","公司", "年份","性质", "名称&qu

导出图片-java导出excel包含图片遇到数据量比如超过130条左右就会报错

问题描述 java导出excel包含图片遇到数据量比如超过130条左右就会报错 用HSSF导出excel包含图片遇到数据量比如超过130条左右就会报错(每条包含一张图片):会出现sql的异常: 无效的列索引 ,但是sql语句并没有问题.请教各位高手指点! 解决方案 我来晚了,这是POI缓存机制问题.不是130条,是100条,当你超过100条时,数据会丢失.解决方法是,使用构造函数增加缓存行数 SXSSFWorkbook wb = new SXSSFWorkbook(5000);

asp.net里导出excel表方法汇总

asp.net|excel|导出excel 1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Di