`
java032
  • 浏览: 86420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

asp.net里导出excel表方法 转载

阅读更多

用dataview

 

 

public void OutputExcel(DataView dv,string str)

{

   //

   // TODO: 在此处添加构造函数逻辑

   //

                           //dv为要输出到Excel的数据,str为标题名称

   GC.Collect();

   Application excel;// = new Application();

   int rowIndex=4;

   int colIndex=1;

   _Workbook xBk;

   _Worksheet xSt;

   excel= new ApplicationClass();

 

   xBk = excel.Workbooks.Add(true);

 

   xSt = (_Worksheet)xBk.ActiveSheet;

   //

   //取得标题

   //

   foreach(DataColumn col in dv.Table.Columns)

    {

    colIndex++;

    excel.Cells[4,colIndex] = col.ColumnName;

    xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐

   }

   //

   //取得表格中的数据

   //

   foreach(DataRowView row in dv)

    {

    rowIndex ++;

    colIndex = 1;

    foreach(DataColumn col in dv.Table.Columns)

     {

     colIndex ++;

     if(col.DataType == System.Type.GetType("System.DateTime"))

      {

      excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");

      xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐

     }

     else

      if(col.DataType == System.Type.GetType("System.String"))

      {

      excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();

      xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐

     }

     else

      {

      excel.Cells[rowIndex,colIndex] = row[col.ColumnName].ToString();

     }

    }

   }

   //

   //加载一个合计行

   //

   int rowSum = rowIndex + 1;

   int colSum = 2;

   excel.Cells[rowSum,2] = "合计";

   xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment = XlHAlign.xlHAlignCenter;

   //

   //设置选中的部分的颜色

   //

   xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();

   xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Interior.ColorIndex = 19;//设置为浅黄色,共计有56种

   //

   //取得整个报表的标题

   //

   excel.Cells[2,2] = str;

   //

   //设置整个报表的标题格式

   //

   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;

   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;

   //

   //设置报表表格为最适应宽度

   //

   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();

   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();

   //

   //设置整个报表的标题为跨列居中

   //

   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();

   xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment = XlHAlign.xlHAlignCenterAcrossSelection;

   //

   //绘制边框

   //

   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle = 1;

   xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;//设置左边线加粗

   xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[XlBordersIndex.xlEdgeTop].Weight = XlBorderWeight.xlThick;//设置上边线加粗

   xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;//设置右边线加粗

   xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Borders[XlBordersIndex.xlEdgeBottom].Weight = XlBorderWeight.xlThick;//设置下边线加粗

   //

   //显示效果

   //

   excel.Visible=true;

   //xSt.Export(Server.MapPath(".")+""""+this.xlfile.Text+".xls",SheetExportActionEnum.ssExportActionNone,Microsoft.Office.Interop.OWC.SheetExportFormat.ssExportHTML);

   xBk.SaveCopyAs(Server.MapPath(".")+""""+this.xlfile.Text+".xls");

   ds = null;

            xBk.Close(false, null,null);

 

            excel.Quit();

            System.Runtime.InteropServices.Marshal.ReleaseComObject(xBk);

            System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);

    System.Runtime.InteropServices.Marshal.ReleaseComObject(xSt);

            xBk = null;

            excel = null;

   xSt = null;

            GC.Collect();

   string path = Server.MapPath(this.xlfile.Text+".xls");

   System.IO.FileInfo file = new System.IO.FileInfo(path);

   Response.Clear();

   Response.Charset="GB2312";

   Response.ContentEncoding=System.Text.Encoding.UTF8;

   // 添加头信息,为"文件下载/另存为"对话框指定默认文件名

   Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));

   // 添加头信息,指定文件大小,让浏览器能够显示下载进度

   Response.AddHeader("Content-Length", file.Length.ToString());

 

   // 指定返回的是一个不能被客户端读取的流,必须被下载

   Response.ContentType = "application/ms-excel";

 

   // 把文件流发送到客户端

   Response.WriteFile(file.FullName);

   // 停止页面的执行

 

   Response.End();

}

分享到:
评论

相关推荐

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

    ### ASP.NET 中导出 Excel 表的方法汇总 在 ASP.NET 应用程序中,导出数据到 Excel 是一个常见的需求。下面将详细介绍 ASP.NET 中几种常见的导出 Excel 的方法及其实现原理。 #### 方法一:使用 DataSet 直接生成 ...

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

    这个压缩包“asp.net里导出excel表方法汇总.rar”包含了一个名为“asp.net里导出excel表方法汇总.txt”的文件,很可能是对几种导出Excel方法的详细概述。以下是一些常见的ASP.NET导出Excel的方法及其详细解释: 1. ...

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

    本文档总结了四种在ASP.NET(C#)环境中导出Excel的方法及其实现细节。 #### 1. 由Dataset生成 这种方法通过读取一个`DataSet`中的数据并将其转换为Excel格式。具体步骤如下: 1. **设置响应头**:首先设置`...

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

    ### ASP.NET 中导出 Excel 表格方法汇总 在 ASP.NET 开发中,经常需要将数据导出到 Excel 文件中,以供用户下载或进一步分析使用。本文将详细介绍 ASP.NET 中常用的几种导出 Excel 的方法及其实现细节。 #### 一、...

    asp.net里导出excel的方法

    ### ASP.NET 中导出 Excel 的方法详解 在 ASP.NET 应用程序开发中,导出数据到 Excel 是一个常见的需求。下面将详细介绍 ASP.NET 中三种不同的导出 Excel 的方法,并对每种方法进行深入解析。 #### 方法一:使用 ...

    ASP.NET页面数据导出excel

    本文将详细介绍四种从ASP.NET页面导出数据到Excel的方法。 方法一: 这种方法利用了ASP.NET的Response对象,将DataGrid或GridView等控件的数据直接输出为HTML格式,然后设置Content-Type为"application/vnd.ms-...

    asp.net 数据库导出excel 方法

    asp.net 数据库导出excel 方法 在本篇文章中,我们将讨论使用 ASP.NET 将数据库数据导出到 Excel 文件的方法。该方法使用 DataRow 对象将数据写入到 HTTP 输出流中,并将其作为 Excel 文件下载。 首先,我们需要...

    asp.net导入导出excel表,导入到sql数据库

    以上就是关于“asp.net导入导出excel表,导入到sql数据库”的详细解析,涵盖了从数据的导出到导入的整个流程,希望对你的项目有所帮助。在实际开发中,务必注意错误处理和异常捕获,确保数据的完整性和安全性。

    asp.net导出excel(带图片)

    ### 知识点一:ASP.NET 中导出 Excel 文件的基本流程 1. **创建 Excel 工作簿**: - 使用 `Microsoft.Office.Interop.Excel` 命名空间中的类来创建一个 Excel 工作簿对象。 - 示例代码片段中通过 `new Microsoft....

    【ASP.NET编程知识】asp.net DataTable导出Excel自定义列名的方法.docx

    在ASP.NET编程中,将DataTable数据导出到Excel文件是一项常见的需求。在处理这个任务时,我们可能需要自定义Excel文件中的列名以满足特定的需求。以下是一个使用NPOI库来实现此功能的方法。 首先,为了使用NPOI库...

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

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

    asp.net GridView导出excel

    最后,关于标签“asp.net GridView 导出excel”,这些都是ASP.NET Web开发中常见的任务,掌握这些技术可以帮助开发者提高用户体验,提供更加灵活的数据导出功能。通过学习和实践这些知识,开发者可以更好地满足用户...

    ASP.NET导入导出Excel(完整版)

    综上所述,ASP.NET导入导出Excel涉及到多种技术和策略,需要根据实际项目需求选择合适的方法。通过理解这些知识点,开发者可以有效地在ASP.NET应用程序中实现与Excel文件的交互,提高工作效率和用户体验。

    asp.net导入导出Excel表

    "asp.net导入导出Excel表"这个主题涉及到如何在Web应用程序中利用NPOI库来实现这一功能。NPOI是一个强大的开源库,允许开发者读取和写入Microsoft Office格式的文件,包括Excel。 首先,我们需要创建一个名为`...

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

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

    asp.net里导出excel表汇总

    本文将详细解析在ASP.NET中导出Excel表的几种常见方法,包括通过DataSet、DataGrid和DataView生成Excel文件。 ### 一、由DataSet生成Excel 在ASP.NET中,使用DataSet作为数据源生成Excel表格是一种高效的方法。...

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

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

    asp.net中如何导出excel表的几个方法

    ASP.NET 中导出 Excel 表的几个方法 在 ASP.NET 开发过程中,经常需要将数据导出到 Excel 表中,以便于用户查看和分析数据。这篇文章将介绍三种在 ASP.NET 中导出 Excel 表的方法,分别使用 DataSet、DataGrid 和 ...

Global site tag (gtag.js) - Google Analytics