导出到Excel3种方法比较
.net导出excel的四种方法及评测

一、概述在日常工作和生活中,我们经常会遇到需要导出Excel表格的情况,无论是数据分析报告、财务报表还是客户清单,Excel都是非常常见的工具。
而对于使用.net框架的开发人员来说,如何在程序中实现Excel 导出也是一个常见的需求。
本文将介绍四种常见的.net导出Excel的方法,并对它们进行评测,以便开发人员在实际项目中选择最合适的方案。
二、利用Microsoft.Office.Interop.Excel进行导出1. 使用COM组件操作ExcelMicrosoft.Office.Interop.Excel是.NET对Excel COM组件的封装,开发人员可以通过这个组件来操作Excel。
通过这种方法,可以实现对Excel表格的创建、读取、修改和导出。
2. 优点a. 功能丰富:可以实现对Excel表格的各种操作,包括格式设置、数据写入等。
b. 灵活性高:可以实现对Excel表格的各种定制操作,满足不同需求。
3. 缺点a. 依赖性强:需要安装Office软件,才能在服务器上执行。
b. 性能低:由于是通过COM组件进行操作,性能相对较低,特别是在大数据量的情况下。
三、利用NPOI库进行导出1. 使用NPOI库NPOI是一个.NET操作Office文件的开源库,支持对Excel、Word、PowerPoint的读写操作。
通过NPOI库,开发人员可以对Excel表格进行创建、读取、修改和导出。
2. 优点a. 轻量级:NPOI库较轻量,不需要依赖Office软件。
b. 跨评台性:NPOI库可以在Windows、Linux和MacOS等操作系统上使用。
3. 缺点a. API复杂:相对于Microsoft.Office.Interop.Excel,NPOI库的API设计相对复杂。
b. 功能相对局限:相对于Microsoft.Office.Interop.Excel,NPOI库的功能相对局限一些。
四、利用EPPlus库进行导出1. 使用EPPlus库EPPlus是一个用于操作Excel文件的开源库,可以在.NET环境下实现对Excel表格的创建、读取、修改和导出。
导出excel方法

导出excel方法导出Excel是一种非常常见的操作,它允许我们将数据以电子表格的形式保存,并可以进行进一步的处理和分析。
在这里,我将为您介绍三种常见的导出Excel 的方法。
方法一:使用开源库(如pandas)进行导出pandas是一个强大的数据分析库,可以用于处理和分析结构化数据。
它提供了一个非常方便的方法来导出数据到Excel文件。
下面是一个使用pandas库导出数据到Excel的示例代码:import pandas as pd# 创建一个数据集data = {'姓名': ['张三', '李四', '王五'],'年龄': [25, 30, 35],'性别': ['男', '女', '男']}df = pd.DataFrame(data)# 导出数据到Exceldf.to_excel('data.xlsx', index=False)在这个例子中,我们首先创建了一个包含姓名、年龄和性别的数据集。
然后,我们使用`to_excel()`方法将数据集导出到一个名为"data.xlsx"的Excel文件中。
参数`index=False`用于防止生成的Excel文件中包含索引列。
方法二:使用Python自带的csv模块进行导出Python自带了一个csv模块,可以用于操作逗号分隔值(CSV)格式的数据。
尽管CSV是一种常见的数据存储格式,但它也可以很容易地导出为Excel文件。
下面是一个使用csv模块导出数据到Excel的示例代码:import csv# 创建一个数据集data = [['姓名', '年龄', '性别'],['张三', 25, '男'],['李四', 30, '女'],['王五', 35, '男']]# 导出数据到Excelwith open('data.csv', 'w', newline='') as file:writer = csv.writer(file)writer.writerows(data)在这个例子中,我们首先创建了一个包含姓名、年龄和性别的数据集。
delphi导出数据至Excel的七种方法及比较以及一些EXCEL单元格的操作

end;
tsList.Add(s);
try
try
ADOQuery.First;
While Not ADOQuery.Eof do
s,filename :string;
aSheet :Variant;
excel :OleVariant;
savedialog :tsavedialog;
begin
Result := true;
try
excel:=CreateOleObject('Excel.Application');
var h,k:intering;
begin
try
Excelid := CreateOLEObject('Excel.Application');
except
MessageBox(Application.Handle,'数据导出完毕!','系统提示',MB_ICONINFORMATION or MB_OK);
try
if copy(FileName,length(FileName)-3,4)<>'.xls' then
aSheet.range['A1:H1'].Font.size := 20; //字体
设置A1到H1的单元格的字体大小为20,可以Column[n]设置某列的字体。
aSheet.range['A1:H1'].Font.bold := true;
设置A1到H1的单元格的字体 加粗
一;
Excel中的数据导入和导出技巧

Excel中的数据导入和导出技巧在如今数字化的时代,Excel已经成为了商业和个人生活中必不可少的工具。
其中,数据的导入和导出是Excel的核心功能之一,它使得用户能够轻松地在Excel中导入和导出各种数据,并进行进一步的分析和处理。
本文将介绍一些Excel中的数据导入和导出技巧,帮助读者更加高效地利用Excel。
一、数据导入技巧1. 从文本文件导入数据如果你有一个文本文件,想将其中的数据导入到Excel中进行处理,可以按照下面的步骤进行操作:首先,在Excel中选择“数据”选项卡,在“获取外部数据”选项下选择“从文本”;然后,选择你要导入的文本文件;接下来,Excel会弹出“文本导入向导”对话框,在这里你可以选择文本文件的分隔符、数据格式等,最后点击“完成”。
2. 从数据库导入数据如果你需要从数据库中导入数据到Excel中,可以使用Excel的“数据连接向导”功能。
以下是具体的操作步骤:首先,打开Excel并选择“数据”选项卡,在“获取外部数据”选项下选择“从其他源”;然后,在弹出的对话框中选择“从SQL Server”或其他数据库类型,根据需要填写相关的连接信息;接下来,选择要导入的数据表或查询,并设置相关的筛选条件;最后,点击“完成”即可将数据库中的数据导入到Excel中。
3. 从Web页面导入数据有时候,你可能需要从Web页面上导入数据到Excel中。
Excel提供了方便的“Web查询”功能,让你能够轻松地从Web页面上抓取数据。
以下是具体的操作步骤:首先,打开Excel并选择“数据”选项卡,在“获取外部数据”选项下选择“从Web”;然后,在弹出的对话框中输入要访问的Web页面的URL,并点击“确定”;接下来,Excel会加载Web页面的内容,并在对话框中显示页面上的表格和数据;最后,选择要导入的数据表格,然后点击“导入”即可将Web页面上的数据导入到Excel中。
二、数据导出技巧1. 将Excel数据导出为文本文件当你需要将Excel中的数据导出为文本文件时,可以按照以下步骤进行操作:首先,在Excel中选择你要导出的数据,可以是整个工作表或选定的单元格区域;然后,点击“文件”选项卡,在弹出的菜单中选择“另存为”;接下来,在“另存为”对话框中选择保存的文件格式为“文本(Tab分隔符)”,然后点击“保存”。
Excel数据导入导出技巧

Excel数据导入导出技巧Excel是一款功能强大的电子表格软件,广泛应用于各行各业。
在日常工作中,我们经常需要将数据从其他来源导入到Excel中进行处理,或者将Excel中的数据导出到其他软件或格式中使用。
本文将为大家介绍一些Excel数据导入导出的技巧,帮助大家更高效地处理数据。
一、数据导入1. 文本导入:当我们需要导入一个文本文件到Excel中时,可以使用文本导入功能。
选择“数据”-“从文本”选项,然后选择要导入的文件,按照导入向导的提示进行操作。
可以设置分隔符、数据格式等,以确保导入的数据准确无误。
2. 数据连接:Excel还可以通过数据连接的方式导入数据。
选择“数据”-“来自其他源”-“从数据连接向导”,然后选择数据源,如数据库、Web数据等。
按照向导的提示进行操作,即可将数据连接到Excel中,实现数据的实时更新。
3. 数据透视表:数据透视表是Excel中非常强大的数据分析工具,可以将大量数据快速汇总和分析。
我们可以通过数据透视表来导入数据,并进行灵活的数据分析和报表生成。
选择“插入”-“数据透视表”,然后选择要导入的数据源和字段,即可生成数据透视表。
二、数据导出1. 导出为文本文件:当我们需要将Excel中的数据导出为文本文件时,可以选择“文件”-“另存为”-“文本文件”,然后选择保存的位置和文件格式。
可以选择以逗号、制表符等分隔符分隔数据,以便在其他软件中使用。
2. 导出为PDF文件:如果我们需要将Excel中的数据以PDF格式分享给他人,可以选择“文件”-“另存为”-“PDF”,然后选择保存的位置和文件名。
可以设置PDF的页面布局、打印质量等参数,以确保导出的PDF文件质量良好。
3. 导出为图像文件:有时候我们需要将Excel中的数据以图像的形式导出,可以选择“文件”-“另存为”-“其他格式”,然后选择要保存的图像格式,如JPEG、PNG 等。
可以设置图像的分辨率、颜色模式等参数,以满足不同需求。
如何在Excel中进行数据的导入和导出

如何在Excel中进行数据的导入和导出Excel是一款功能强大的电子表格软件,广泛应用于数据处理和分析工作中。
在实际工作中,我们经常需要将数据导入到Excel中进行分析,或者将Excel中的数据导出到其他应用程序进行使用。
本文将介绍如何在Excel中进行数据的导入和导出操作,以帮助读者更好地利用Excel进行数据处理。
一、数据的导入操作数据的导入操作指的是将外部数据导入到Excel中,方便进行分析和处理。
下面将介绍几种常用的数据导入方式。
1. 从文本文件导入数据在Excel中,可以将文本文件中的数据导入到工作表中。
具体操作如下:1)打开Excel软件,选择新建一个空白工作簿。
2)在菜单栏中选择“数据”选项卡,点击“从文本”按钮。
3)选择要导入的文本文件,点击“打开”。
4)按照导入向导的提示,选择正确的分隔符和数据格式,点击“下一步”。
5)预览导入的数据,确认无误后点击“完成”。
2. 从数据库导入数据如果要导入的数据存储在数据库中,可以通过以下步骤将其导入到Excel中:1)打开Excel软件,选择新建一个空白工作簿。
2)在菜单栏中选择“数据”选项卡,点击“从其他来源”按钮。
3)选择“从SQL Server导入数据”,点击“下一步”。
4)按照向导的提示,输入数据库服务器的名称和登录凭据,选择要导入的数据库和数据表。
5)点击“下一步”,选择是否导入查询结果或直接连接到数据库。
6)点击“下一步”,选择导入数据的方式和数据范围,点击“下一步”。
7)预览导入的数据,确认无误后点击“完成”。
二、数据的导出操作数据的导出操作指的是将Excel中的数据导出到其他应用程序或文件中。
下面将介绍几种常见的数据导出方式。
1. 导出为文本文件可以将Excel中的数据导出为文本文件,以便在其他应用程序中进行使用。
具体操作如下:1)在Excel中选中要导出的数据范围。
2)在菜单栏中选择“文件”选项卡,点击“另存为”。
3)选择要保存的文件格式为“文本(Tab分隔)(*.txt)”或“以逗号分隔的值(*.csv)”。
Excel数据导入与导出方法

Excel数据导入与导出方法在日常工作中,Excel是一个广泛应用的电子表格软件,通过它我们可以方便地进行数据管理和分析。
本文将介绍Excel中的数据导入和导出方法,帮助读者更好地利用这一功能。
一、数据导入1. 从文本文件导入数据要从文本文件导入数据到Excel,首先打开一个新的工作簿。
然后,选择“数据”选项卡,点击“从文本”按钮。
2. 从数据库导入数据Excel也支持从数据库导入数据。
在“数据”选项卡中,点击“从其他来源”按钮,选择“从SQL Server”或其他数据库类型,按照向导的指示连接到数据库并选择数据表。
3. 从Web导入数据如果需要从Web导入数据,同样在“数据”选项卡中,点击“从Web”按钮,输入要导入的网页地址,按照向导的指示选择需要导入的数据。
二、数据导出1. 导出为文本文件在Excel中,我们可以将数据导出为文本文件。
首先,选择需要导出的数据范围,然后点击“文件”选项卡,选择“另存为”→“其他格式”,选择文件格式为“文本(Tab分隔)”或其他格式,点击“保存”。
2. 导出为PDF文件如果需要将Excel数据导出为PDF文件,选择需要导出的数据范围,然后点击“文件”选项卡,选择“另存为”→“PDF格式”,选择保存路径,点击“保存”。
3. 导出为图像文件Excel还支持将数据导出为图像文件,比如JPEG、PNG等格式。
选择需要导出的数据范围,点击“文件”选项卡,选择“另存为”→“其他格式”,选择文件格式为“JPEG”或其他格式,点击“保存”。
三、其他技巧1. 设置数据导入导出的选项在导入或导出数据之前,Excel还提供了一些选项供用户设置。
比如,在从文本文件导入数据时,可以设置分隔符和文本格式;在导出为文本文件时,可以设置分隔符和字符编码等。
2. 管理导入导出的映射当进行大量数据导入或导出时,Excel允许用户管理导入导出的映射,以便更方便地重复执行相同的操作。
3. 自动更新导入数据如果需要定期更新导入数据,可以使用Excel的数据连接功能,设置数据刷新的频率和方式,以确保数据持续更新。
C#中datatable导出excel(三种方法)

C#中datatable导出excel(三种⽅法)⽅法⼀:(拷贝直接可以使⽤,适合⼤批量资料, 上万笔)Microsoft.Office.Interop.Excel.Application appexcel = new Microsoft.Office.Interop.Excel.Application();SaveFileDialog savefiledialog = new SaveFileDialog();System.Reflection.Missing miss = System.Reflection.Missing.Value;appexcel = new Microsoft.Office.Interop.Excel.Application();Microsoft.Office.Interop.Excel.Workbook workbookdata;Microsoft.Office.Interop.Excel.Worksheet worksheetdata;Microsoft.Office.Interop.Excel.Range rangedata;//设置对象不可见appexcel.Visible = false;System.Globalization.CultureInfo currentci = System.Threading.Thread.CurrentThread.CurrentCulture;System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-us"); workbookdata = appexcel.Workbooks.Add(miss);worksheetdata = (Microsoft.Office.Interop.Excel.Worksheet)workbookdata.Worksheets.Add(miss, miss, miss, miss);//给⼯作表赋名称 = "saved";for (int i = 0; i < dt.Columns.Count; i++){worksheetdata.Cells[1, i + 1] = dt.Columns[i].ColumnName.ToString();}//因为第⼀⾏已经写了表头,所以所有数据都应该从a2开始rangedata = worksheetdata.get_Range("a2", miss);Microsoft.Office.Interop.Excel.Range xlrang = null;//irowcount为实际⾏数,最⼤⾏int irowcount = dt.Rows.Count;int iparstedrow = 0, icurrsize = 0;//ieachsize为每次写⾏的数值,可以⾃⼰设置int ieachsize = 1000;//icolumnaccount为实际列数,最⼤列数int icolumnaccount = dt.Columns.Count;//在内存中声明⼀个ieachsize×icolumnaccount的数组,ieachsize是每次最⼤存储的⾏数,icolumnaccount就是存储的实际列数object[,] objval = new object[ieachsize, icolumnaccount];icurrsize = ieachsize;while (iparstedrow < irowcount){if ((irowcount - iparstedrow) < ieachsize)icurrsize = irowcount - iparstedrow;//⽤for循环给数组赋值for (int i = 0; i < icurrsize; i++){for (int j = 0; j < icolumnaccount; j++)objval[i, j] = dt.Rows[i + iparstedrow][j].ToString();System.Windows.Forms.Application.DoEvents();}string X = "A" + ((int)(iparstedrow + 2)).ToString();string col = "";if (icolumnaccount <= 26){col = ((char)('A' + icolumnaccount - 1)).ToString() + ((int)(iparstedrow + icurrsize + 1)).ToString();}else{col = ((char)('A' + (icolumnaccount / 26 - 1))).ToString() + ((char)('A' + (icolumnaccount % 26 - 1))).ToString() + ((int)(iparstedrow + icurrsize + 1)).ToString();}xlrang = worksheetdata.get_Range(X, col);// 调⽤range的value2属性,把内存中的值赋给excelxlrang.Value2 = objval;iparstedrow = iparstedrow + icurrsize;}//保存⼯作表System.Runtime.InteropServices.Marshal.ReleaseComObject(xlrang);xlrang = null;//调⽤⽅法关闭excel进程appexcel.Visible = true;⽅法⼆:(⾃⼰建函数,适合⼤批量资料, 上万笔)using System.IO;private void dataTableToCsv(DataTable table, string file){string title = "";FileStream fs = new FileStream(file, FileMode.OpenOrCreate);//FileStream fs1 = File.Open(file, FileMode.Open, FileAccess.Read);StreamWriter sw = new StreamWriter(new BufferedStream(fs), System.Text.Encoding.Default); for (int i = 0; i < table.Columns.Count; i++){title += table.Columns[i].ColumnName + "\t"; //栏位:⾃动跳到下⼀单元格}title = title.Substring(0, title.Length - 1) + "\n";sw.Write(title);foreach (DataRow row in table.Rows){string line = "";for (int i = 0; i < table.Columns.Count; i++){line += row[i].ToString().Trim() + "\t"; //内容:⾃动跳到下⼀单元格}line = line.Substring(0, line.Length - 1) + "\n";sw.Write(line);}sw.Close();fs.Close();}dataTableToCsv(dt, @"c:\1.xls"); //调⽤函数System.Diagnostics.Process.Start(@"c:\1.xls"); //打开excel⽂件⽅法三:(可以⾃⼰调整单元格的格式,适合⼩批量的数量)//没有数据的话就不往下执⾏if (dataGridView1.Rows.Count == 0)return;//实例化⼀个Excel.Application对象Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//让后台执⾏设置为不可见,为true的话会看到打开⼀个Excel,然后数据在往⾥写//excel.Visible = false;excel.Visible = true;//新增加⼀个⼯作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错 excel.Application.Workbooks.Add(true);//⽣成Excel中列头名称for (int i = 0; i < dataGridView1.Columns.Count; i++){excel.Cells[1, i + 1] = dataGridView1.Columns[i].HeaderText;}//把DataGridView当前页的数据保存在Excel中for (int i = 0; i < dataGridView1.Rows.Count - 1; i++){for (int j = 0; j < dataGridView1.Columns.Count; j++){if (dataGridView1[j, i].ValueType == typeof(string)){excel.Cells[i + 2, j + 1] = "'" + dataGridView1[j, i].Value.ToString();}else{excel.Cells[i + 2, j + 1] = dataGridView1[j, i].Value.ToString();}}}//设置禁⽌弹出保存和覆盖的询问提⽰框excel.DisplayAlerts = false;excel.AlertBeforeOverwriting = false;////保存⼯作簿//excel.Application.Workbooks.Add(true).Save();////保存excel⽂件//excel.Save("D:" + "\\KKHMD.xls");////确保Excel进程关闭//excel.Quit(); //可以直接打开⽂件//excel = null;}catch (Exception ex){MessageBox.Show(ex.Message, "错误提⽰");}Excel.output((DataTable)dataGridView1.DataSource);。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
导出Excel表的方法2006-08-03 08:23public void Create Excel/'>Excel(DataSet ds,string typeid,string FileName){HttpResponse resp;resp = Page.Response;resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);string colHeaders= "", ls_item="";int i=0;//定义表对象与行对像,同时用DataSet对其值进行初始化DataTable dt=ds.Tables[0];DataRow[] myRow=dt.Select("");// typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件if(typeid=="1"){//取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符for(i=0;i colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; colHeaders +=dt.Columns[i].Caption.ToString() +"\n";//向HTTP输出流中写入取得的数据信息resp.Write(colHeaders);//逐行处理数据foreach(DataRow row in myRow){//在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\nfor(i=0;i ls_item +=row[i].ToString() + "\t";ls_item += row[i].ToString() +"\n";//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据resp.Write(ls_item);ls_item="";}}else{if(typeid=="2"){//从DataSet中直接导出XML数据并且写到HTTP输出流中resp.Write(ds.GetXml());}}//写缓冲区中的数据到HTTP头文件中resp.End();}2、使用微软的C++写的ACTIVEX控件:/download/Office/'>Office XPDev/sample/1. 0/WIN98MeXP/EN-US/Dsoframerctl.exe3、由datagrid生成:public void To Excel/'>Excel(System.Web.UI.Control ctl){HttpContext.Current.Response.AppendHeader("Content-Disposition","atta chment;filename=Excel/'>Excel.xls");HttpContext.Current.Response.Charset ="UTF-8";HttpContext.Current.Response.ContentEncoding=System.Text.Encoding.Default;HttpContext.Current.Response.ContentType="application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel /mswordctl.Page.EnableViewState =false;System.IO.StringWriter tw = new System.IO.StringWriter() ;System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);ctl.RenderControl(hw);HttpContext.Current.Response.Write(tw.ToString());HttpContext.Current.Response.End();}用法:To Excel/'>Excel(datagrid1);4、这个用dataview ,代码好长public void Output Excel/'>Excel(DataView dv,string str){//dv为要输出到Excel/'>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]).Horizo ntalAlignment = 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-M M-dd");xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,col Index]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐}elseif(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,col Index]).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]).Horizontal Alignment = 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]).HorizontalAli gnment = 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[XlBorde rsIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;//设置左边线加粗xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[XlBor dersIndex.xlEdgeTop].Weight = XlBorderWeight.xlThick;//设置上边线加粗xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).B orders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;//设置右边线加粗xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Bor ders[XlBordersIndex.xlEdgeBottom].Weight = XlBorderWeight.xlThick;//设置下边线加粗excel.Visible=true;//xSt.Export(Server.MapPath(".")+"\\"+this.xlfile.Text+".xls",SheetEx portActionEnum.ssExportActionNone,Microsoft.Office/'>Office.Interop.O WC.SheetExportFormat.ssExport HTML);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());// 添加头信息,指定文件大小,让浏览器能够显示下载进度Response.AddHeader("Content-Length", file.Length.ToString());// 指定返回的是一个不能被客户端读取的流,必须被下载Response.ContentType = "application/ms-excel";// 把文件流发送到客户端Response.WriteFile(file.FullName);// 停止页面的执行Response.End();。