用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 的方法及其实现原理。 #### 方法一:使用 DataSet 直接生成 ...
这个压缩包“asp.net里导出excel表方法汇总.rar”包含了一个名为“asp.net里导出excel表方法汇总.txt”的文件,很可能是对几种导出Excel方法的详细概述。以下是一些常见的ASP.NET导出Excel的方法及其详细解释: 1. ...
本文档总结了四种在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的Response对象,将DataGrid或GridView等控件的数据直接输出为HTML格式,然后设置Content-Type为"application/vnd.ms-...
asp.net 数据库导出excel 方法 在本篇文章中,我们将讨论使用 ASP.NET 将数据库数据导出到 Excel 文件的方法。该方法使用 DataRow 对象将数据写入到 HTTP 输出流中,并将其作为 Excel 文件下载。 首先,我们需要...
以上就是关于“asp.net导入导出excel表,导入到sql数据库”的详细解析,涵盖了从数据的导出到导入的整个流程,希望对你的项目有所帮助。在实际开发中,务必注意错误处理和异常捕获,确保数据的完整性和安全性。
### 知识点一:ASP.NET 中导出 Excel 文件的基本流程 1. **创建 Excel 工作簿**: - 使用 `Microsoft.Office.Interop.Excel` 命名空间中的类来创建一个 Excel 工作簿对象。 - 示例代码片段中通过 `new Microsoft....
在ASP.NET编程中,将DataTable数据导出到Excel文件是一项常见的需求。在处理这个任务时,我们可能需要自定义Excel文件中的列名以满足特定的需求。以下是一个使用NPOI库来实现此功能的方法。 首先,为了使用NPOI库...
本篇文章将详细讲解如何利用ASP.NET与Ajax技术实现在Web应用中导出Excel文件。 首先,ASP.NET是Microsoft开发的一个用于构建动态网站、Web应用程序和服务的框架。它基于.NET Framework,提供了丰富的服务器控件、...
最后,关于标签“asp.net GridView 导出excel”,这些都是ASP.NET Web开发中常见的任务,掌握这些技术可以帮助开发者提高用户体验,提供更加灵活的数据导出功能。通过学习和实践这些知识,开发者可以更好地满足用户...
综上所述,ASP.NET导入导出Excel涉及到多种技术和策略,需要根据实际项目需求选择合适的方法。通过理解这些知识点,开发者可以有效地在ASP.NET应用程序中实现与Excel文件的交互,提高工作效率和用户体验。
"asp.net导入导出Excel表"这个主题涉及到如何在Web应用程序中利用NPOI库来实现这一功能。NPOI是一个强大的开源库,允许开发者读取和写入Microsoft Office格式的文件,包括Excel。 首先,我们需要创建一个名为`...
在ASP.NET开发中,有时我们需要将大量的数据导出到Excel文件中,以便用户可以方便地进行数据管理和分析。特别是当数据量大到一个工作表无法容纳时,分Sheet导出就显得尤为重要。本文将深入探讨如何在ASP.NET环境中...
本文将详细解析在ASP.NET中导出Excel表的几种常见方法,包括通过DataSet、DataGrid和DataView生成Excel文件。 ### 一、由DataSet生成Excel 在ASP.NET中,使用DataSet作为数据源生成Excel表格是一种高效的方法。...
在Asp.net开发中,有时候我们需要将数据导出到Excel文件以便用户下载或者进行进一步的数据处理。本篇文章将总结四种常见的导出...通过实践,开发者可以更好地掌握在Asp.net中导出Excel文件的技巧,提高项目开发效率。
ASP.NET 中导出 Excel 表的几个方法 在 ASP.NET 开发过程中,经常需要将数据导出到 Excel 表中,以便于用户查看和分析数据。这篇文章将介绍三种在 ASP.NET 中导出 Excel 表的方法,分别使用 DataSet、DataGrid 和 ...