`
阅读更多
依据SZW朋友的提醒:本文所说的Excel文件指.xls文件,不包括Excel2007的默认保存文档格式.

大量数据导出到Excel文件,一般情况有以下三个麻烦:
1.导出的执行速度要比较快,否则有http请求超时的问题;
    当然如果您是使用winForm方式就不在此列。
2.Excel文件有最多65535行数据的限制;
3.数字会有格式变成指数方式的麻烦;
    比如身份证号码,以数字方式保存后,信息末几位有丢失的情况。

解决思路:
1.使用oledb,把excel文件当作数据库处理,效率相对其他五花八门的导出方案来说,算比较高的。虽然不是最高的,但得到的excel文件是真正的二进制Excel文件,如果用户好要把导出的数据整理后导回到系统,那么恭喜了,这种方法是你最好的选择。
2.每个sheet最多最多65535行数据,但一个文件可以有很多个sheet文件,如果您要导出的数据超过65535个,那么需要设法把多余的数据放到第二、三....个sheet中去。
3.一个sheet我们可以看作是一个数据库的表,那么我们是不是可以通过定义表的字段的数据属性来保证数据的正确格式呢?

关键代码:
备注:完整的代码是偶写的工程代码,版权所有的。但大家可以根据我的思路和关键代码的提示自己完成想要的功能,呵呵
代码片段一 sheet创建:
//生成创建表的脚本
        StringBuilder sb = new StringBuilder();
        sb.Append(
"CREATE TABLE ");
        sb.Append(
"[" + tableName + "] ( ");

        
for (int i = 0; i < headers.Length; i++)
        
{
            
string datatype;
            
switch (dt.Columns[columns[i]].DataType.Name.ToLower())
            
{
                
case "float": datatype = "float"break;
                
case "int32": datatype = "int"break;
                
case "double": datatype = "double"break;
                
case "decimal": datatype = "float"break;
                
default: datatype = "text"break;
            }

            
if (i < headers.Length - 1)
            
{
                sb.Append(
string.Format("[{0}] {1},", headers[i], datatype));
            }

            
else
            
{
                sb.Append(
string.Format("[{0}] {1})", headers[i], datatype));
            }

        }

        
return sb.ToString();

大家看到了把,我们可以使用create语句创建sheet。我们使用的表的名称,将变成sheet名称。
建议大家导出的名称可以这样依次起:比如产品信息数据,表名可以分别叫 产品信息(第1页)、产品信息(第2页)等等。

代码片段二 按照需要自动创建多个sheet:
for (int i = 0; i < dt.Rows.Count; i++)
            
{
                
//创建sheet
                if (i % 65535 == 0)
                
{
                    tableName 
= string.Format("{0}Page{1}", dt.TableName, (i / 65535+ 1);
                    objCmd.CommandText 
= GetCreateSheetSQL(dt, headers, columns, tableName);
                    objCmd.ExecuteNonQuery();
                }

                
插入语句#region 插入语句
                sb.Append(
"INSERT INTO ");
                sb.Append(
"[" + tableName + "] ( ");
.

最后提醒大家:excel作为数据库的时候,是可以支持事务处理的哦,大家别忘了使用事务机制。

如果大家处理的数据量比较小,要求的格式非常复杂,比如多重表头,有统计图形等,那么请使用其他的excel导出方法。本解决方法适用范围前面已经说过了,请大家参考。
http://piedpiper.cnblogs.com
本文是偶原创,想转贴的朋友劳驾写明转贴二字。呵呵
分享到:
评论

相关推荐

    asp.net+Ajax实现Excel文件导出

    本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...

    C# asp.net导入和导出excel完整源码

    综上所述,"C# asp.net导入和导出excel完整源码"项目涵盖了C#编程、ASP.NET Web开发、Excel文件处理以及数据库操作等多个方面的技术,为开发者提供了一个实用的工具,帮助他们更高效地处理数据导入导出任务。

    C#,asp.net 简单明了的导出Excel! 只要几行代码

    C#,asp.net 简单明了的导出Excel! 只要几行代码,只要引用到一个类,即可导出你要导出的数据,不用用代码一行行编译导出excel格式,我这里都帮你封装好了,只要你链接数据库,读出表,导出excel,就又你要的数据了...

    c# asp.net 与 excel文件转换

    在IT行业中,C# ASP.NET 是一种常用的Web应用程序开发框架,而Excel文件处理则是常见的数据管理任务。这篇教程主要关注如何使用C# ASP.NET来实现Excel文件的导入和导出功能,这对于初学者来说是非常实用的知识点。 ...

    ASP.NET中把Gridview导出为EXCEL

    在ASP.NET开发中,将Gridview控件中的数据导出到Excel是一种常见的需求,这有助于用户方便地管理和处理大量数据。下面将详细讲解如何实现这一功能,并解决中文乱码问题。 首先,我们需要理解ASP.NET Gridview的基本...

    Excel 导入导出 (asp.net/c#)

    在ASP.NET和C#开发中,处理Excel文件是一项常见的任务,比如从Excel文件中导入数据到数据库,或者将数据库中的数据导出到Excel文件供用户下载。标题"Excel 导入导出 (asp.net/c#)"所涉及的核心知识点主要包括Excel...

    C# ASP.net将DataGrid数据输出到Excel文件

    ,这是一个ASP.NET WEB测试代码,数据库为access,把Access中的内容导出到Excel文件中,并保持数据格式不变,测试时请在ASP.NET3.5环境以上进行,数据库文件路径请修改Web.config文件。使用说明:  1.先将本目录下...

    ASP.NET导出Excel乱码的终极解决方案

    通过上述步骤,可以有效地解决ASP.NET导出Excel时的乱码问题,确保数据的准确性和用户的良好体验。然而,重要的是要始终关注编码细节,因为不同的数据来源和环境可能会引入新的挑战。持续测试和优化编码策略是保持...

    ASP.NET 分Sheet导出EXCEL 2003 导出引用dll

    在ASP.NET开发中,有时我们需要将大量的数据导出到Excel文件中,以便用户可以方便地进行数据管理和分析。特别是当数据量大到一个工作表无法容纳时,分Sheet导出就显得尤为重要。本文将深入探讨如何在ASP.NET环境中...

    C#利用Response流将数据库数据导出成Excel

    导出Excel文件 在上面的代码中,我们使用了Response流将数据库数据导出到Excel文件中。该代码主要实现了以下几个步骤: 1. 首先,我们设置Response流的编码为GB2312,这是中国国家标准的编码方式。 2. 其次,我们...

    导出Excel案例. asp.net c#.rar

    在ASP.NET C#环境中,导出Excel是一种常见的需求,例如数据报表、数据分析或者用户下载功能。这个"导出Excel案例. asp.net c#"的压缩包文件提供了相关的代码示例和可能的数据样本,帮助开发者理解如何在实际项目中...

    通用ASP.NET Core NPOI导出复杂Word、Excel和Excel数据导入实战项目

    3. **Excel数据导出**:在ASP.NET Core应用中,你可以将数据库中的数据导出为Excel文件供用户下载。这通常涉及数据查询、模型映射以及使用NPOI的`ISheet`和`IRow`接口创建工作表和行,设置单元格值。例如,可以创建...

    asp.net 导出excel demo

    本示例"asp.net 导出excel demo"主要探讨的是如何在不依赖Microsoft Office的情况下,生成Excel 97-2003格式的文件,这种格式也称为XLS文件,是Excel早期版本支持的通用格式,兼容性广泛。 在ASP.NET中实现这个功能...

    ASP.NET导入导出excel文件数据类

    在ASP.NET中,导入和导出Excel文件是常见的需求,特别是在数据处理和报表生成场景下。这个主题主要涉及两个版本的Microsoft Excel文件格式:2003(xls)和2007以后的版本(xlsx)。这两种格式在内部存储结构上有所...

    【ASP.NET编程知识】asp.net生成Excel并导出下载五种实现方法.docx

    在ASP.NET编程中,生成Excel并导出下载是一项常见的需求,尤其在数据分析和报表生成时。以下是五种不同的实现方法: 1. **方法一:通过GridView** GridView控件是ASP.NET中用于显示数据的常用组件。这种方法适用于...

    asp.net导出EXCEL

    在ASP.NET中,导出Excel是一项常见的需求,用于将网页上的数据转化为用户可下载的Excel文件。这通常涉及到从数据库或其他数据源获取信息,并将其格式化为Excel表格。以下是一些关于如何在ASP.NET中实现Excel导出的...

    C# asp.net MVC Excel导入导出Dome 注释明确 清楚明了

    在C# ASP.NET MVC框架中,Excel的导入与导出是一项常见的需求,特别是在处理大量数据时。本示例Demo提供了一个清晰的实现过程,通过注释使得代码理解更加容易。以下将详细介绍该Demo中的关键知识点。 1. **MVC模式*...

    c#、asp.net 中将数据导出成word或者excel文件的控件

    c#、asp.net 中将数据导出成word或者excel文件的控件 直接可以拖到界面 与自己的数据控件绑定 以及设置导出的类型就可以了

    C#百万数据导出Demo

    在C#编程中,导出大量数据到Excel是一项常见的任务,尤其在数据分析、报表生成或者数据备份等场景中。本文将深入探讨如何在C#环境中高效地处理百万级别的数据导出,并结合“C#百万数据导出Demo”进行详细解析。 ...

    ASP.NET导出数据到Excel

    ### ASP.NET导出数据到Excel知识点详解 #### 一、ASP.NET导出数据到Excel概述 在Web开发中,导出数据至Excel是一项常见的需求,尤其是对于那些需要为用户提供数据分析和下载功能的应用程序。ASP.NET作为一种流行的...

Global site tag (gtag.js) - Google Analytics