`
wyf
  • 浏览: 432616 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

ASP.NET 导出Excel 和csv

阅读更多

 public static string ExportTable(DataSet ds)
    {
        string data = "";
        //data = ds.DataSetName + "\n";
        foreach (DataTable tb in ds.Tables)
        {
            //data += tb.TableName + "\n";
            data += "<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">";
            //写出列名
            data += "<tr style=\"font-weight: bold; white-space: nowrap;\">";
            foreach (DataColumn column in tb.Columns)
            {
                data += "<td>" + column.ColumnName + "</td>";
            }
            data += "</tr>";
            //写出数据
            foreach (DataRow row in tb.Rows)
            {
                data += "<tr>";
                foreach (DataColumn column in tb.Columns)
                {
                    if (column.ColumnName.Equals("证件编号") || column.ColumnName.Equals("报名编号"))
                        data += "<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>";
                    else 
                        data += "<td>" + row[column].ToString() + "</td>";
                }
                data += "</tr>";
            }
            data += "</table>";
        }
        return data;
    }

    public static void ExportDsToXls(Page page, string sql)
    {
        ExportDsToXls(page, "FileName", sql);
    }
    public static void ExportDsToXls(Page page, string fileName, string sql)
    {
        DataSet ds = DBUtil.GetDataSet(sql);
        if (ds != null) ExportDsToXls(page, fileName, ds);
    }
    public static void ExportDsToXls(Page page, DataSet ds)
    {
        ExportDsToXls(page, "FileName", ds);
    }
    public static void ExportDsToXls(Page page, string fileName, DataSet ds)
    {
        page.Response.Clear();
        page.Response.Buffer = true;
        page.Response.Charset = "GB2312";
        //page.Response.Charset = "UTF-8";
        page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + System.DateTime.Now.ToString("_yyMMdd_hhmm") + ".xls");
        page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
        page.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 
        page.EnableViewState = false;
        page.Response.Write(ExportTable(ds));
        page.Response.End();
    }
//style="vnd.ms-excel.numberformat:@" 可以去除自动科学计数法的困扰 
//输出为Table,能够最大限度的减少字段中数据对生成的文件格式的影响,在这里我没有处理数据中含有HTML标签的情况 在页面后台中,这样使用就可以了:
    protected void lbtnToExcel_Click(object sender, EventArgs e)
    {
        string strWhere = BuildSearchWhereString(); 
        string strOrder = this.hidOrderString.Value; 
        string sql = "SELECT 报名编号, 证件编号, 姓名, 考区考点, 报考类别, " 
            + "行政区划名称 AS 行政区划, 单位名称 AS 工作单位, 毕业学校名称, 毕业专业名称 AS 毕业专业, 毕业年月, " 
            + "通讯地址, 性别"
            + " from [VW报名]"; 
        if (!string.IsNullOrEmpty(strWhere)) sql += " where " + strWhere; 
        if (!string.IsNullOrEmpty(strOrder)) sql += " order by " + strOrder; 
        else sql += " order by [报考类别]";
        PageExport.ExportDsToXls(this.Page, "BaoMing", sql);
        dataBind();
    }
 //修改了这个函数:在导出1k条数据时,估计速度提高上百倍,数据量越大越明显,原理很简单,StringBuilder的性能和“+”的性能的区别。
public static string ExportTable(DataSet ds) 
{ 
StringBuilder sb = new StringBuilder(); 
//data = ds.DataSetName + "\n"; 
int count = 0; 

foreach (DataTable tb in ds.Tables) 
{ 
//data += tb.TableName + "\n"; 
sb.AppendLine("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">"); 
sb.AppendLine("<table cellspacing=\"0\" cellpadding=\"5\" rules=\"all\" border=\"1\">"); 
//写出列名 
sb.AppendLine("<tr style=\"font-weight: bold; white-space: nowrap;\">"); 
foreach (DataColumn column in tb.Columns) 
{ 
sb.AppendLine("<td>" + column.ColumnName + "</td>"); 
} 
sb.AppendLine("</tr>"); 

//写出数据 
foreach (DataRow row in tb.Rows) 
{ 
sb.Append("<tr>"); 
foreach (DataColumn column in tb.Columns) 
{ 
if (column.ColumnName.Equals("证件编号") || column.ColumnName.Equals("报名编号")) 
sb.Append("<td style=\"vnd.ms-excel.numberformat:@\">" + row[column].ToString() + "</td>"); 
else 
sb.Append("<td>" + row[column].ToString() + "</td>"); 
} 
sb.AppendLine("</tr>"); 
count++; 
} 
sb.AppendLine("</table>"); 
} 

return sb.ToString(); 
} 
 
分享到:
评论
1 楼 hautbbs 2011-11-28  
谢谢分享! 

相关推荐

    Asp.net 导出Excel文件总结(导出csv、Office COM组建、Jet OLEDB、NPOI)

    在Asp.net开发中,有时候我们需要将数据导出到Excel文件以便用户下载或者进行进一步的数据处理。本篇文章将总结四种常见的导出...通过实践,开发者可以更好地掌握在Asp.net中导出Excel文件的技巧,提高项目开发效率。

    asp.net 导出数据与图片到excel

    在.NET框架中,ASP.NET是一...综上所述,ASP.NET导出数据和图片到Excel涉及到的技术和注意事项广泛,需要综合运用编程技巧和库来实现高效、稳定且安全的导出功能。在实际开发中,应根据项目需求和环境选择合适的方法。

    asp.net 导出功能实现(xls,csv格式)

    在ASP.NET中,导出数据到Excel(XLS)或CSV格式是一项常见的需求,这通常涉及到从数据库或其他数据源获取数据,并将这些数据格式化为适合电子表格的格式。这两种格式各有优缺点,XLS(Excel)文件适用于需要进行复杂...

    ASP.NET导出Excel控件(示例源码)

    ASP.NET是一种基于.NET Framework的服务器端编程模型,...通过学习和理解这段代码,你可以快速掌握ASP.NET导出Excel的核心技术,并在自己的项目中应用。记得在实际开发中根据具体需求进行调整,以满足不同的业务场景。

    Asp.Net导出Excel和TxT文档

    总的来说,Asp.Net导出Excel和TXT文档的功能是通过控制HTTP响应,将数据转换为适合Excel或TXT的格式来实现的。对于更复杂的需求,可以利用.NET框架和第三方库提供的强大功能。在实际应用中,确保考虑到性能、兼容性...

    asp.net导出万能Excel和word

    总之,ASP.NET中导出Excel和Word涉及多种技术选择,开发者可以根据项目需求和资源限制,选择最适合的库和方法。通过灵活运用这些工具,可以轻松地将数据库中的数据转化为易于查看和分享的Excel表格或Word文档。

    asp.net 导出 CSV

    ### ASP.NET导出CSV知识点详解 #### 一、ASP.NET导出CSV的原理与实现步骤 在ASP.NET中导出CSV文件是一种常见的需求,尤其是在处理大量数据时。CSV(Comma-Separated Values)文件是一种存储表格数据的简单文件格式...

    asp.NET 导出EXCEL

    总结来说,ASP.NET导出Excel涉及数据处理、选择合适的库或技术、设置HTTP响应头和流化输出等步骤。这个“asp.NET 导出EXCEL”源码实例是一个学习和实践的好材料,它能帮助开发者快速掌握这一实用技能。

    ASP.NET导出EXCEL类.rar

    本压缩包文件“ASP.NET导出EXCEL类.rar”提供了一个专门用于ASP.NET环境下的类,用于实现数据到Excel的导出功能。 首先,我们要理解导出Excel的基本原理。在ASP.NET中,通常使用Microsoft Office Interop库来操作...

    ASP.NET导出EXCEL类

    在ASP.NET中,导出Excel功能常被用于将网页上的数据,如GridView控件中的数据,导出为Excel文件,方便用户进行数据分析和存储。GridView是ASP.NET提供的一种用于显示数据集的控件,它可以轻松地从数据库中获取数据并...

    ASP.NET导出数据到Excel.rar

    这个压缩包"ASP.NET导出数据到Excel.rar"很可能包含了实现这一功能的代码示例或教程。 在ASP.NET中,导出数据到Excel主要涉及以下知识点: 1. **数据源**:首先,你需要一个数据源,可以是数据库(如SQL Server、...

    asp.net导出Excel

    ASP.NET导出Excel是一项常见的需求,特别是在Web应用中,用户可能需要...总之,ASP.NET导出Excel涉及多种技术,从简单的CSV生成到使用专门库进行复杂操作。根据项目需求和资源限制,可以选择合适的方法来实现这一功能。

    asp.net Gridview Export PDF,Word,Excel,Csv等等(GridView导出为Excel,word,pdf,csv)源代码

    使用ASP.NET,我们可以利用System.Web.UI.WebControls.WebControl的RenderControl方法将GridView渲染为HTML,然后通过嵌入HTML到一个文件中并更改文件扩展名为.xls,可以实现基本的Excel导出。然而,这种方法可能不...

    Asp.net导出Excel/Csv文本格式数据的方法

    偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪明了反而有些麻烦,就像如果输入身份证(18位数字)的话那就不行了。...

    ASP.NET导出功能

    ASP.NET导出功能是指在ASP.NET Web应用程序中实现的一种能够将数据(如数据库查询结果)转换为特定格式(例如Excel、CSV等)并提供给用户下载的功能。这种功能不仅提高了用户体验,还方便了数据管理和分享。 #### ...

    ASP.NET中把Gridview导出为EXCEL

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

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

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

Global site tag (gtag.js) - Google Analytics