ASP导出为Word或Excel的最简单方法

合集下载

Aspose.Cells操作 导出实例(模板导出)

Aspose.Cells操作 导出实例(模板导出)

本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件。

这个组件的强大之处,就不多说,对于我们的报表总是会有导出Excel的处理,如果你使用微软Excel的com组件,那么对于简单的操作还行,但是多余复杂的模板,那将是一个令人头疼的事。

在Aspose.Cells之下,将是一个简单的事情。

他可以导入导出excel操作,在本节将要说的就是他的际遇excel模板的导出强大功能。

多的不说,我们先来利用Northwind做两个小demo。

先说说Aspose.Cells的模板语法:1.&=DataSource.Field,&=[DataSource].[Field]是对DataTable和几何类型的引用,将会从当前行开始竖直向下生成多行数据。

2.&=$data:是对变量或数组的引用。

数组存在skip,horizontal等属性,具体参见官方网站3.&=&=动态公式计算;{r}当前行,{c}当前列,{-n},{n}当前行或列的偏移量前n或后n。

4.&==是动态计算,如excel,if等语句。

(if(logic_test,true_value,false_value))还有其他更为复杂的汇总计算的表达式,这里也不在这节多讲,有兴趣的朋友,可以去官网看看。

我们先来个简单的例子,光说,总是不行的,还是要代码实践才能说明一切:Excel模板1:代码:在我们的代码中添加数据源:如下:View Code1var sql = @"select * from Customers2 where Customers.City ='London'";3 var dt=GetDataTable(sql);4 dt.TableName = "Customers";5 WorkbookDesigner designer = new WorkbookDesigner();6 designer.Open(MapPath("~/1.xls"));7//数据源8 designer.SetDataSource(dt);9//报表单位10 designer.SetDataSource("ReportUtils", "xxxxx有限公司客户信息");11 designer.SetDataSource("ReportAdd", "London");12//截止日期13 designer.SetDataSource("ReportDate", DateTime.Now.ToString("yyyy年MM月dd日"));1415 designer.Process();1617 designer.Save(string.Format("report.xls"), SaveType.OpenInExcel, FileFormatType.E xcel2003, Response);18 Response.Flush();19 Response.Close();20 designer = null;21 Response.End();代码很简单,就是添加了一个datatable,和几个变量的数据源,我们所生成excel为:这就完成了我们的一个简单的多表头数据导出报表。

aspose.cells根据模板导出excel

aspose.cells根据模板导出excel

aspose.cells根据模板导出excel ⼜隔⼗多天没写博客了,最近都在忙项⽬的事情,公司⼈事变动也⽐较⼤,⼿头上就⼜多了⼀个项⽬。

最近做⽤aspose.cells根据模板导出excel报价单的功能,顺便把相关的核⼼记下来,先上模板和导出的效果图吧,如下: 导出效果图(看到产品图,打不死的程(diao)序(si)员(猿)骚动吧,有没有不禁看了看⾃⼰粗⼤的右⼿): (其中红⾊框框起来的是动态填充的内容,⼯作薄名(产品信息)也是动态输出的) 模板如下: ⼤概流程是这样,先把需要输出到excel的内容存到⼀个model⾥⾯,然后把该model编程⼀个datatable,然后就直接绑定在指定的excel模板上,然后把excel转成流根据excel格式输出到客户端。

以下为将置顶的model绑定在指定的模板上(模板后⾯附上)///<summary>///返回Excel⽂件流///</summary>///<param name="model">数据</param>///<param name="templateFileName">模板⽂件,要全路径</param>///<param name="sheetName">⼯作簿名称</param>///<param name="outDesigner">⼯作簿名称</param>///<returns></returns>public static MemoryStream OutModelFileToStream(DataTable model, string templateFileName, string sheetName, Action<WorkbookDesigner, DataTable> action) {WorkbookDesigner designer = new WorkbookDesigner();designer.Open(templateFileName);designer.SetDataSource(model);//对designer做额外操作if (action != null){action(designer, model);}//SetCellWithPicture(designer, model.Rows[0]["ProductLogo"].ToString(), 3, 5, 17, 8);designer.Process();if (!string.IsNullOrEmpty(sheetName)){designer.Workbook.Worksheets[0].Name = sheetName;}return designer.Workbook.SaveToStream();} 最后⼀个参数action是为了让⽤户可以在将基本的数据绑定在excel表上之后,可以做⼀些额外的补充操作,⽐如说控制某些特殊部分的格式或者说是某个位置要输出图⽚等,我做的时候,就是要在excel表的某个位置动态输出⼀个图⽚才做了如此操作。

转换成excel最简单方法

转换成excel最简单方法

转换成excel最简单方法在日常工作中,我们经常需要将一些数据或文档转换成Excel格式,以便于进行统计、分析和管理。

在这篇文章中,我将介绍几种最简单的方法来实现这个任务。

方法一:使用在线转换工具现在有很多在线转换工具可以帮助我们将各种文件格式转换成Excel。

其中一些工具允许我们直接将文件拖放到他们的网站上进行转换,而其他一些工具则需要我们选择要转换的文件并上传到他们的网站上。

无论使用哪种方法,转换过程都非常简单,只需几个步骤即可完成。

方法二:使用Microsoft Office如果你已经安装了Microsoft Office套件,那么你可以使用其中的一些应用程序来完成文件转换任务。

比如,你可以使用Microsoft Excel来打开不同格式的文件,并将其另存为Excel格式。

1. 打开Microsoft Excel应用程序。

2. 在菜单栏上,选择“文件”>“打开”。

3. 然后选择你想要转换的文件,并点击“打开”按钮。

4. 在Excel中,你可以对文件进行必要的编辑和格式化。

5. 最后,选择“文件”>“另存为”来保存文件为Excel格式。

这种方法非常简单,因为它利用了我们熟悉的应用程序,并且可以对转换后的文件进行更多的编辑和格式化操作。

方法三:使用文本编辑器和Excel对于一些简单的文本文件,我们可以使用文本编辑器将其转换成逗号分隔值(CSV)格式,然后再使用Excel打开和保存。

1. 打开文本编辑器(如Notepad)。

2. 将要转换的文本内容粘贴到文本编辑器中。

3. 根据需要,对文本内容进行编辑和调整。

4. 选择“文件”>“另存为”,将文件保存为CSV格式。

5. 打开Microsoft Excel应用程序。

6. 在菜单栏上,选择“文件”>“打开”。

7. 在文件类型下拉菜单中,选择“文本文件”。

8. 找到并选择刚才保存的CSV文件,并点击“打开”按钮。

9. 在Excel中,选择“文件”>“另存为”,将文件保存为Excel格式。

网页数据如何简单导出excel

网页数据如何简单导出excel

网页数据如何简单导出excel在浏览网页时,遇到我们需要的网页数据时,如文字、图片等,如何能简单的导出到Excel 中,方便在本地电脑中查看和编辑呢?当然是有办法的啦!下面就为大家介绍几种简单快速的将网页数据导出到Excel的方法,大家可以灵活运用。

一、通过浏览器导出网页数据具体操作:打开某网页后,右键点击网页空白处,在下拉列表中选择“另存为”,然后在弹出的保存窗口中选择保存类型为“网页全部”。

选择保存位置后确定,保存后就会自动保存两个文件,一个是网址,另一个是保存网页内容元素。

如何导出网页数据,以赶集网采集为例图1二、通过网页数据采集器导出网页数据先通过网页数据采集器,将网页数据采集下来,然后再导出为需要的格式即可。

本文使用的是操作简单、功能强大的八爪鱼采集器。

以下是一个八爪鱼采集并导出网页数据的完整示例。

示例中采集的是赶集网上房产-商铺-深圳-南山分类下的所有商铺信息。

示例网站:/fang6/nanshan/步骤1:创建采集任务1)进入主界面,选择“自定义模式”如何导出网页数据,以赶集网采集为例图22)将要采集的网址URL,复制粘贴到网址输入框中,点击“保存网址”如何导出网页数据,以赶集网采集为例图3步骤2:创建翻页循环1)在页面右上角,打开“流程”,以展现出“流程设计器”和“定制当前操作”两个板块。

将页面下拉到底部,点击“下一页”按钮,在右侧的操作提示框中,选择“循环点击下一页”如何导出网页数据,以赶集网采集为例图4步骤3:创建列表循环1)移动鼠标,选中页面里的第一个商铺链接。

选中后,系统会自动识别页面里的其他相似链接。

在右侧操作提示框中,选择“选中全部”如何导出网页数据,以赶集网采集为例图52)选择“循环点击每个链接”,以创建一个列表循环如何导出网页数据,以赶集网采集为例图6步骤4:提取商铺信息1)在创建列表循环后,系统会自动点击第一个商铺链接,进入商铺详细信息页。

点击需要的字段信息,在右侧的操作提示框中,选择“采集该元素的文本”如何导出网页数据,以赶集网采集为例图72)字段信息选择完成后,选中相应的字段,可以进行字段的自定义命名。

导出Word文档(C#导出DOC)

导出Word文档(C#导出DOC)
//创建一个名为WordDoc的文档对象
Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
//增加一表格
//在文档空白地方添加文字内容
st.Range.Text = "Wellcome To ";
//将WordDoc文档对象的内容保存为DOC文档
WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
“(在IIS6中是NETWORD 关闭”组件服务“管理器。
这样就能在页面中访问Word对象了。
二、修改WEB.CONFIG,在<system.web>区段内加入:<identity impersonate="true"/>
三、添加引用:《网站》——>《添加引用》——>《COM》——Microsoft Word 11.0 Object Library
四、添加命名空间引用,
using Microsoft.Office.Interop.Word;
五:代码
Object Nothing = System.Reflection.Missing.Value;
一、首先配置系统环境:
1、在命令行(work 的sdk命令行提示)中输入:dcomcnfg,会显示出“组件服务”管理器

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

asp.net里导出excel表方法汇总
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
用法:ToExcel(datagrid1);
4、这个用dataview ,代码好长
//
//设置报表表格为最适应宽度
//
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();
}
//
//取得表格中的数据
//
foreach(DataRowView row in dv)
{
rowIndex ++;
colIndex = 1;
foreach(DataColumn col in dv.Table.Columns)
{
colIndex ++;
//
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种
HttpContext.Current.Response.Charset ="UTF-8";

使用php导出excel时处理复杂表头的万能方法

使用php导出excel时处理复杂表头的万能方法

使用php导出excel时处理复杂表头的万能方法处理复杂表头时,使用PHP导出Excel表格的方法在使用PHP导出Excel表格时,当表头比较复杂时,可能会遇到一些困难。

然而,有一种简单而有效的方法可以处理这种情况。

首先,我们需要将表头信息保存在一个数组中。

该数组中的每个元素代表一个表头。

例如,我们可以使用以下代码定义一个包含复杂表头的数组:$tableHeaders = [['A1', 'B1', 'C1'],['A2', 'B2', 'C2'],['A3', 'B3', 'C3']];接下来,我们需要使用递归函数来合并和展开表头。

这样可以确保表头在导出Excel时正确格式化。

function mergeHeaders($headers, &$result, $startColumn = 0, $startRow = 0) {$maxRow = 1;foreach ($headers as $rowIndex => $headerRow) {foreach ($headerRow as $columnIndex => $headerCell) {$cell = $result->getActiveSheet()->getCellByColumnAndRow($columnIndex + $startColumn, $rowIndex + $startRow);$cell->setValue($headerCell);$maxRow = max($maxRow, $rowIndex + 1);}}$result->getActiveSheet()->mergeCellsByColumnAndRow($startColumn, $startRow, $startColumn + count($headers[0]) - 1, $startRow);if (count($headers) > 1) {mergeHeaders(array_slice($headers, 1), $result, $startColumn, $startRow + $maxRow);}}在上述代码中,mergeHeaders函数接受表头数组、Excel对象以及起始列和行作为参数。

使用Aspose插件对Excel操作

使用Aspose插件对Excel操作

使⽤Aspose插件对Excel操作使⽤使⽤Aspose插件对Excel⽂档进⾏导⼊导出操作使⽤前请先下载Aspose插件引⽤Excel导⼊:前台使⽤file标签获取,submit⽅式提交。

<form id="form1" enctype="multipart/form-data" method="post"><table class="table-condensed"><tr><td class="text-right">导⼊表格:</td><td class="text-left"><input type="file" name="file1" class="btn btn-default btn-lg"/></td></tr><tr><td class="text-left"><input type="submit" id="btnImport" name="btnImport" value="导⼊" class="btn btn-default"/></td></tr></table></form>后台接收:HttpPostedFileBase fileBase = Request.Files["file1"];//这⾥获取名称与前台标签name保持⼀致if (fileBase != null){string filename = Path.GetFileName(fileBase.FileName);string extension = Path.GetExtension(filename);string path = "/Upload/Test/" + DateTime.Now.ToString("yyyyMMdd") + "/";Directory.CreateDirectory(Path.GetDirectoryName(Request.MapPath(path)));string newFilename = DateTime.Now.ToString("yyyyMMddHHmmssfff");string fullFileName = path + newFilename + extension;fileBase.SaveAs(Request.MapPath(fullFileName)); try{ Stopwatch sw = new Stopwatch();//记录导⼊操作⽤时多长sw.Start();//这⾥可放⼊BLL⽅法处理string result = new ProductBLL().ImportExcel(Request.MapPath(path), newFilename, extension);//BLL⽅法 ProductBLLpublic string ImportExcel(string path, string filename, string extension){Workbook workbook = new Workbook(path + filename + extension);Worksheet worksheet = workbook.Worksheets[0];Cells cells = worksheet.Cells;for (int i = 1; i < cells.Rows.Count; i++){try{string brand = cells[i, 0].StringValue.Trim();//获取列值string years = cells[i, 1].StringValue.Trim();}catch (Exception e){continue;}}return "OK";} sw.Stop();long runTime = sw.ElapsedMilliseconds / 1000; //获取到操作⽤时多少秒 } catch (Exception e){Log.Write("导⼊", "导⼊错误", "错误信息:" + e.Message);}}Excel导出:string path = "/Upload/Test/" + DateTime.Now.ToString("yyyyMMdd") + "/";Directory.CreateDirectory(Path.GetDirectoryName(Server.MapPath(path)));string newFilename = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xls";string fullFileName = Server.MapPath(path + newFilename);public void ExportInfo(List<Test> list, string fullFileName){Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();Aspose.Cells.Worksheet cellSheet = workbook.Worksheets[0];cellSheet.PageSetup.LeftMargin = 0.3;//左边距cellSheet.PageSetup.RightMargin = 0.3;//右边距cellSheet.PageSetup.TopMargin = 1;//上边距cellSheet.PageSetup.BottomMargin = 0.5;//下边距cellSheet.PageSetup.FooterMargin = 0.5;//页脚cellSheet.PageSetup.HeaderMargin = 0.5;//页眉cellSheet.PageSetup.Orientation = ndscape;cellSheet.PageSetup.CenterHorizontally = true;//⽔平居中cellSheet.PageSetup.CenterVertically = true;cellSheet.Cells[0, 0].PutValue("货号");cellSheet.Cells[0, 1].PutValue("颜⾊");cellSheet.Cells[0, 2].PutValue("尺码");int i = 1;foreach (var item in list){cellSheet.Cells[i, 0].PutValue(item.productno);cellSheet.Cells[i, 1].PutValue(item.size);cellSheet.Cells[i, 2].PutValue(item.color);i++;}cellSheet.AutoFitColumns();fullFileName = Path.GetFullPath(fullFileName);workbook.Save(fullFileName);}return File(fullFileName, "application/ms-excel", UserName + "_Test单" + newFilename);// ⽅法Action⾥直接返回File⽂件下载。

在ASP中怎么把页面中的数据导出到EXCEL

在ASP中怎么把页面中的数据导出到EXCEL

使用asp怎样将数据导出到excel文件 Web注意:两个函数中的“data“是网页中要导出的table的 id<input type="hidden" name="out_word" onclick="vbscript:buildDoc" value="导出到word" class="notPrint"><input type="hidden" name="out_excel" onclick="AutomateExcel();" value="导出到excel" class="notPrint">导出到Excel代码<SCRIPT LANGUAGE="JavaScript"><!--function AutomateExcel(){// Start Excel and get Application object.var oXL = new ActiveXObject("Excel.Application");// Get a new workbook.var oWB = oXL.Workbooks.Add();var oSheet = oWB.ActiveSheet;var table = document.all.data;var hang = table.rows.length;var lie = table.rows(0).cells.length;// Add table headers going cell by cell.for (i=0;i<hang;i++){for (j=0;j<lie;j++){oSheet.Cells(i+1,j+1).Value = table.rows(i).cells(j).innerText;}}oXL.Visible = true;erControl = true;}//--></SCRIPT>导出到Word代码<script language="vbscript">Sub buildDocset table = document.all.datarow = table.rows.lengthcolumn = table.rows(1).cells.lengthSet objWordDoc = CreateObject("Word.Document")'objWordDoc.Application.Documents.Add theTemplate, FalseobjWordDoc.Application.Visible=TrueDim theArray(20,10000)for i=0 to row-1for j=0 to column-1theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXTnextnextobjWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("综合查询结果集") //显示表格标题objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("") Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range With rngPara.Bold = True //将标题设为粗体.ParagraphFormat.Alignment = 1 //将标题居中 = "隶书" //设定标题字体.Font.Size = 18 //设定标题字体大小End WithSet rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).RangeSet tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)for i = 1 to columnobjWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray(i,1)objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.Paragraph Format.alignment=1nextFor i =1 to columnFor j = 2 to rowobjWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.Paragraph Format.alignment=1NextNextEnd Sub</SCRIPT>在ASP中怎么把页面中的数据导出到EXCEL直接读SQL库,我想也可以用来解决你的问题,(同理:页面上显示的内容当然也是读库的,除非你是静态的那算了)<!--#include file="../opendb.asp"--><!--写链接的事不用我弄了吧?--><title>生成报表</title><%dim conn,strconnset conn=server.CreateObject("adodb.connection")conn.Open ConnStrdim rs,sql,filename,fs,myfile,xSet fs = server.CreateObject("scripting.filesystemobject")filepath=Request.ServerVariables("APPL_PHYSICAL_PATH")filename = filepath&"temp_xls\"&year(now)&month(now)&day(now)&".xls"if fs.FileExists(filename) thenfs.DeleteFile(filename)end ifset myfile = fs.CreateTextFile(filename,true)Set rs = Server.CreateObject("ADODB.Recordset")sql = "select * from jdxx"rs.Open sql,conn,1,1if rs.EOF and rs.BOF thenelsedim strLine,responsestrstrLine=""For each x in rs.fieldsstrLine = strLine & & chr(9)Nextmyfile.writeline strLineDo while Not rs.EOFstrLine=""for each x in rs.FieldsstrLine = strLine & x.value & chr(9)nextmyfile.writeline strLiners.MoveNextloopend ifrs.Closeset rs = nothingremotefile="http://xxx.xxx.x.xxx/temp_xls/"&year(now)&month(now)&day(now)&".xls" response.write "<font size=2 color=blue>报表巳生成,<a href="&remotefile&">请点击这里下载该报表!</a></font>"%>在ASP中怎么把页面中的数据导出到EXCEL<%@ LANGUAGE="VBSCRIPT" CODEPAGE="950"%><%'關鍵所在Response.ContentType = "application/vnd.ms-excel"Set conn=Server.CreateObject("ADODB.Connection")Set rs=Server.CreateObject("ADODB.Recordset")strconn = "Provider = SQLOLEDB; Data Source = 192.168.0.2; Uid=gt_bbs;Pwd=gt_bbs;DataBase=gt_bbs"conn.open strconnSQL="Select top 100 id,uid,uer,bm,zw,zb,gxrq,ip,be From Gt_user order by id desc"rs.Open SQL,conn,3,1if rs.eof and rs.bof thenResponse.Write"<div align=center><br>沒有任何記錄</div>"else%><TABLE cellSpacing=0 cellPadding=0 width="100%" border=1><TR><TD width=12% height="25" class=borderon>&nbsp;代 </TD> <TD width="11%" class=borderon>&nbsp; 名</TD><TD width="11%" class=borderon>&nbsp;部門</TD><TD width="14%" class=borderon>&nbsp; </TD><TD width="6%" class=borderon>&nbsp; 別</TD><TD width="16%" class=borderon>&nbsp; 登</TD><TD width="16%" class=borderon>&nbsp; 登 IP</TD> </TR></TABLE><TABLE width="100%" border=1 cellPadding=0 cellSpacing=0><%do while (Not RS.Eof) and (I<RS.PageSize)%><TR bgcolor=<%=bg2%>><TD class=all width=12% height=20 >&nbsp;<%=rs(1)%></TD> <TD width="11%" class=all>&nbsp;<%=rs(2)%></TD><TD width="11%" class=all>&nbsp;<%=rs(3)%></TD><TD width="14%" class=all>&nbsp;<%=rs(4)%></TD><TD width="6%" class=all>&nbsp;<%=rs(5)%></TD><TD width="16%" class=all>&nbsp;<%=rs(6)%></TD><TD width="16%" class=all>&nbsp;<%=rs(7)%></TD></TR><%Rs.MoveNextLoopend IFSet Conn = NothingSet Rs = Nothing%></TABLE>。

asp.net生成Excel并导出下载五种实现方法

asp.net生成Excel并导出下载五种实现方法

⽣成Excel并导出下载五种实现⽅法通过GridView(简评:⽅法⽐较简单,但是只适合⽣成格式简单的Excel,且⽆法保留VBA代码),页⾯⽆刷新aspx.cs部分复制代码代码如下:using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Text; public partial class DataPage_NationDataShow : System.Web.UI.Page { private Data_Link link = new Data_Link(); private string sql; protected void Page_Load(object sender, EventArgs e) { Ajax.Utility.RegisterTypeForAjax(typeof(DataPage_NationDataShow)); } protected void btnExcel_Click(object sender, EventArgs e) { string strExcelName = "MyExcel"; strExcelName = strExcelName.Replace(@"/", ""); Data_Link link = new Data_Link(); string strSQL = this.hidParam.Value; DataSet ds = new DataSet(); ds = link.D_DataSet_Return(strSQL);//获得想要放⼊Excel的数据 gvExcel.Visible = true; gvExcel.DataSource = null; gvExcel.DataMember = ds.Tables[0].TableName; gvExcel.DataSource = ds.Tables[0]; gvExcel.DataBind(); ExportToExcel(this.Page, gvExcel, strExcelName); } protected void gvExcel_RowDataBound(object sender, GridViewRowEventArgs e) { } public override void VerifyRenderingInServerForm(Control control) { } /// <summary> /// ⼯具⽅法,Excel出⼒(解决乱码问题) /// </summary> ///<param name="page">调⽤页⾯</param> /// <param name="excel">Excel数据</param> /// <param name="fileName">⽂件名</param> public void ExportToExcel(System.Web.UI.Page page, GridView excel, string fileName) { try { foreach (GridViewRow row in excel.Rows) { for (int i = 0; i < row.Cells.Count; i++) { excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow; } } excel.Font.Size = 10; excel.AlternatingRowStyle.BackColor =System.Drawing.Color.LightCyan; excel.RowStyle.Height = 25; page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName); page.Response.Charset = "utf-8"; page.Response.ContentType = "application/vnd.ms-excel"; page.Response.Write("<meta http-equiv=Content-Type content=text/html;charset=utf-8>");excel.Page.EnableViewState = false; excel.Visible = true; excel.HeaderStyle.Reset(); excel.AlternatingRowStyle.Reset(); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); excel.RenderControl(oHtmlTextWriter);page.Response.Write(oStringWriter.ToString()); page.Response.End(); excel.DataSource = null; excel.Visible = false; } catch (Exception e) { } } }aspx部分复制代码代码如下:<head runat="server"> <script type="text/javascript"> //Excel DownLoad function excelExport(){ var hidText = document.getElementById("hidParam"); hidText.value = "some params"; document.getElementById("ExcelOutput").click(); } </script> </head> <body onload="pageInit()"> <form id="form1"runat="server"> <input type="button" value="EXCEL下载" style="width:100px;" onclick="excelExport()" id="excelBut" /><input id="hidParam" type="text" runat="server" style="display:none;"/> <asp:Button runat="server" ID="ExcelOutput"style="display:none" Text= "EXCEL出⼒" Width="0px" onclick="btnExcel_Click" UseSubmitBehavior="false"/><asp:GridView ID="gvExcel" runat="server" Height="95px" OnRowDataBound="gvExcel_RowDataBound" Visible="False"> </asp:GridView> </form> </body>在刚才的aspx.cs代码中复制代码代码如下:foreach (GridViewRow row in excel.Rows) { for (int i = 0; i < row.Cells.Count; i++) { excel.HeaderRow.Cells[i].BackColor = System.Drawing.Color.Yellow; } }这部分是给表头添加样式。

ASP导出Excel数据的四种方法

ASP导出Excel数据的四种方法

ASP导出Excel数据的四种方法一、使用OWC什么是OWC?OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制。

在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境。

这种模式下,客户端工作站将在整个任务中分担很大的比重。

<%Option ExplicitClass ExcelGenPrivate objSpreadsheetPrivate iColOffsetPrivate iRowOffsetSub Class_Initialize()Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")iRowOffset = 2iColOffset = 2End SubSub Class_Terminate()Set objSpreadsheet = Nothing "Clean up End SubPublic Property Let ColumnOffset(iColOff) If iColOff > 0 theniColOffset = iColOffElseiColOffset = 2End IfEnd PropertyPublic Property Let RowOffset(iRowOff) If iRowOff > 0 theniRowOffset = iRowOffElseiRowOffset = 2End IfEnd Property Sub GenerateWorksheet(objRS)"Populates the Excel worksheet based on a Recordset"s contents"Start by displaying the titlesIf objRS.EOF then Exit SubDim objField, iCol, iRowiCol = iColOffsetiRow = iRowOffsetFor Each objField in objRS.FieldsobjSpreadsheet.Cells(iRow, iCol).Value = /doc/71b0b63383c4bb4cf7ecd11a.htmlobjSpreadsheet.Columns(iCol).AutoFitColumns"设置Excel表里的字体objSpreadsheet.Cells(iRow, iCol).Font.Bold = True objSpreadsheet.Cells(iRow, iCol).Font.Italic = False objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 objSpreadsheet.Cells(iRow, iCol).Halignment = 2 "居中iCol = iCol + 1Next "objField"Display all of the dataDo While Not objRS.EOFiRow = iRow + 1iCol = iColOffsetFor Each objField in objRS.FieldsIf IsNull(objField.Value) thenobjSpreadsheet.Cells(iRow, iCol).Value = ""ElseobjSpreadsheet.Cells(iRow, iCol).Value = objField.Value objSpreadsheet.Columns(iCol).AutoFitColumns objSpreadsheet.Cells(iRow, iCol).Font.Bold = False objSpreadsheet.Cells(iRow, iCol).Font.Italic = False objSpreadsheet.Cells(iRow, iCol).Font.Size = 10End IfiCol = iCol + 1Next "objFieldobjRS.MoveNextLoopEnd Sub Function SaveWorksheet(strFileName)"Save the worksheet to a specified filenameOn Error Resume NextCall objSpreadsheet.ActiveSheet.Export(strFileName, 0)SaveWorksheet = (Err.Number = 0)End FunctionEnd ClassDim objRSSet objRS = Server.CreateObject("ADODB.Recordset")objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist SecurityInfo=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data source=xxxx;"Dim SaveNameSaveName = Request.Cookies("savename")("name")Dim objExcelDim ExcelPathExcelPath = "Excel\" & SaveName & ".xls"Set objExcel = New ExcelGenobjExcel.RowOffset = 1objExcel.ColumnOffset = 1objExcel.GenerateWorksheet(objRS)If objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) then "Response.Write "已保存为Excel文件.下载"ElseResponse.Write "在保存过程中有错误!"End IfSet objExcel = NothingobjRS.CloseSet objRS = Nothing%>二、用Excel的Application组件在客户端导出到Excel或Word 注意:两个函数中的“data“是网页中要导出的table的 id导出到Excel代码导出到Word代码三、直接在IE中打开,再存为EXCEL文件把读出的数据用格式,在网页中显示出来,同时,加上下一句即可把EXCEL表在客客户端显示。

ASP导出Excel数据的四种方法

ASP导出Excel数据的四种方法

ASP导出‎E xcel‎数据的四种‎方法‎什么是OW‎C?‎OWC是‎O ffic‎e Web‎Comp‎e nt的缩‎写,即Mi‎c roso‎f t的Of‎f ice ‎W eb组件‎,它为在W‎e b中绘制‎图形提供了‎灵活的同时‎也是最基本‎的机制。

在‎一个int‎r anet‎环境中,如‎果可以假设‎客户机上存‎在特定的浏‎览器和一些‎功能强大的‎软件(如I‎E5和Of‎f ice ‎2000)‎,那么就有‎能力利用O‎f fice‎Web组‎件提供一个‎交互式图形‎开发环境。

‎这种模式下‎,客户端工‎作站将在整‎个任务中分‎担很大的比‎重。

‎<%Opt‎i on E‎x plic‎i tC‎l ass ‎E xcel‎G en‎P riva‎t e ob‎j Spre‎a dshe‎e tP‎r ivat‎e iCo‎l Offs‎e t‎P riva‎t e iR‎o wOff‎s et‎S ub C‎l ass_‎I niti‎a lize‎()S‎e t ob‎j Spre‎a dshe‎e t = ‎S erve‎r.Cre‎a teOb‎j ect(‎"OWC.‎S prea‎d shee‎t")‎i RowO‎f fset‎= 2 ‎iCol‎O ffse‎t = 2‎End‎Sub ‎Sub‎Clas‎s_Ter‎m inat‎e()‎S et o‎b jSpr‎e adsh‎e et =‎Noth‎i ng '‎C lean‎up‎E nd S‎u b‎P ubli‎c Pro‎p erty‎Let ‎C olum‎n Offs‎e t(iC‎o lOff‎)If‎iCol‎O ff >‎0 th‎e ni‎C olOf‎f set ‎= iCo‎l Off ‎Else‎iCo‎l Offs‎e t = ‎2En‎d If ‎End ‎P rope‎r ty‎Publ‎i c Pr‎o pert‎y Let‎RowO‎f fset‎(iRow‎O ff) ‎If i‎R owOf‎f> 0‎then‎iRo‎w Offs‎e t = ‎i RowO‎f fE‎l se‎i RowO‎f fset‎= 2 ‎End ‎I fE‎n d Pr‎o pert‎y Sub‎Gene‎r ateW‎o rksh‎e et(o‎b jRS)‎'Po‎p ulat‎e s th‎e Exc‎e l wo‎r kshe‎e t ba‎s ed o‎n a R‎e cord‎s et's‎cont‎e nts ‎'Sta‎r t by‎disp‎l ayin‎g the‎titl‎e sI‎f obj‎R S.EO‎F the‎n Exi‎t Sub‎Dim‎objF‎i eld,‎iCol‎, iRo‎wiC‎o l = ‎i ColO‎f fset‎iRo‎w = i‎R owOf‎f set ‎For ‎E ach ‎o bjFi‎e ld i‎n obj‎R S.Fi‎e lds ‎objS‎p read‎s heet‎.Cell‎s(iRo‎w, iC‎o l).V‎a lue ‎= obj‎F ield‎.Name‎obj‎S prea‎d shee‎t.Col‎u mns(‎i Col)‎.Auto‎F itCo‎l umns‎'设置‎E xcel‎表里的字体‎obj‎S prea‎d shee‎t.Cel‎l s(iR‎o w, i‎C ol).‎F ont.‎B old ‎= Tru‎eob‎j Spre‎a dshe‎e t.Ce‎l ls(i‎R ow, ‎i Col)‎.Font‎.Ital‎i c = ‎F alse‎obj‎S prea‎d shee‎t.Cel‎l s(iR‎o w, i‎C ol).‎F ont.‎S ize ‎= 10 ‎objS‎p read‎s heet‎.Cell‎s(iRo‎w, iC‎o l).H‎a lign‎m ent ‎= 2 '‎居中i‎C ol =‎iCol‎+ 1 ‎Next‎'obj‎F ield‎'Di‎s play‎all ‎o f th‎e dat‎aDo‎Whil‎e Not‎objR‎S.EOF‎iRo‎w = i‎R ow +‎1i‎C ol =‎iCol‎O ffse‎tFo‎r Eac‎h obj‎F ield‎in o‎b jRS.‎F ield‎sIf‎IsNu‎l l(ob‎j Fiel‎d.Val‎u e) t‎h en‎o bjSp‎r eads‎h eet.‎C ells‎(iRow‎, iCo‎l).Va‎l ue =‎""‎E lse ‎objS‎p read‎s heet‎.Cell‎s(iRo‎w, iC‎o l).V‎a lue ‎= obj‎F ield‎.Valu‎eob‎j Spre‎a dshe‎e t.Co‎l umns‎(iCol‎).Aut‎o FitC‎o lumn‎sob‎j Spre‎a dshe‎e t.Ce‎l ls(i‎R ow, ‎i Col)‎.Font‎.Bold‎= Fa‎l se‎o bjSp‎r eads‎h eet.‎C ells‎(iRow‎, iCo‎l).Fo‎n t.It‎a lic ‎= Fal‎s eo‎b jSpr‎e adsh‎e et.C‎e lls(‎i Row,‎iCol‎).Fon‎t.Siz‎e = 1‎0En‎d If ‎iCol‎= iC‎o l + ‎1Ne‎x t 'o‎b jFie‎l do‎b jRS.‎M oveN‎e xt‎L oop ‎End ‎S ub F‎u ncti‎o n Sa‎v eWor‎k shee‎t(str‎F ileN‎a me) ‎'Sa‎v e th‎e wor‎k shee‎t to ‎a spe‎c ifie‎d fil‎e name‎On ‎E rror‎Resu‎m e Ne‎x tC‎a ll o‎b jSpr‎e adsh‎e et.A‎c tive‎S heet‎.Expo‎r t(st‎r File‎N ame,‎0)‎S aveW‎o rksh‎e et =‎(Err‎.Numb‎e r = ‎0)E‎n d Fu‎n ctio‎nEn‎d Cla‎s s‎D im o‎b jRS ‎Set ‎o bjRS‎= Se‎r ver.‎C reat‎e Obje‎c t("A‎D ODB.‎R ecor‎d set"‎)ob‎j RS.O‎p en "‎S ELEC‎T * F‎R OM x‎x xx",‎"Pro‎v ider‎=SQLO‎L EDB.‎1;Per‎s ist ‎S ecur‎i ty ‎Info‎=True‎;User‎ID=x‎x xx;P‎a sswo‎r d=xx‎x x;In‎i tial‎Cata‎l og=x‎x xx;D‎a ta s‎o urce‎=xxxx‎;" D‎i m Sa‎v eNam‎eSa‎v eNam‎e = R‎e ques‎t.Coo‎k ies(‎"save‎n ame"‎)("na‎m e") ‎Dim ‎o bjEx‎c el‎D im E‎x celP‎a th‎E xcel‎P ath ‎= "Ex‎c el\"‎& Sa‎v eNam‎e & "‎.xls"‎Set‎objE‎x cel ‎= New‎Exce‎l Gen ‎objE‎x cel.‎R owOf‎f set ‎= 1‎o bjEx‎c el.C‎o lumn‎O ffse‎t = 1‎obj‎E xcel‎.Gene‎r ateW‎o rksh‎e et(o‎b jRS)‎If ‎o bjEx‎c el.S‎a veWo‎r kshe‎e t(Se‎r ver.‎M apPa‎t h(Ex‎c elPa‎t h)) ‎t hen ‎'Res‎p onse‎.Writ‎e "<h‎t ml><‎b ody ‎b gcol‎o r='g‎a insb‎o ro' ‎t ext=‎'#000‎000'>‎已保存为E‎x cel 文‎件.‎<a hr‎e f='"‎& se‎r ver.‎U RLEn‎c ode(‎E xcel‎P ath)‎& "'‎>下载</‎a>"‎E lse ‎Resp‎o nse.‎W rite‎"在保存‎过程中有错‎误!"‎E nd I‎fSe‎t obj‎E xcel‎= No‎t hing‎obj‎R S.Cl‎o se‎S et o‎b jRS ‎= Not‎h ing ‎%>‎二、‎用Exce‎l的App‎l icat‎i on组件‎在客户端导‎出到Exc‎e l或Wo‎r d‎注意:两个‎函数中的“‎d ata“‎是网页中要‎导出的ta‎b le的‎i d<‎i nput‎type‎="hid‎d en" ‎n ame=‎"out_‎w ord"‎oncl‎i ck="‎v bscr‎i pt:b‎u ildD‎o c" v‎a lue=‎"导出到w‎o rd" ‎c lass‎="not‎P rint‎"><‎i nput‎type‎="hid‎d en" ‎n ame=‎"out_‎e xcel‎" onc‎l ick=‎"Auto‎m ateE‎x cel(‎);" v‎a lue=‎"导出到e‎x cel"‎clas‎s="no‎t Prin‎t">‎导‎出到Exc‎e l代码‎<SCR‎I PT L‎A NGUA‎G E="j‎a vasc‎r ipt"‎><!‎--f‎u ncti‎o n Au‎t omat‎e Exce‎l()‎{//‎Star‎t Exc‎e l an‎d get‎Appl‎i cati‎o n ob‎j ect.‎var‎oXL ‎= new‎Acti‎v eXOb‎j ect(‎"Exce‎l.App‎l icat‎i on")‎;//‎Get ‎a new‎work‎b ook.‎var‎oWB ‎= oXL‎.Work‎b ooks‎.Add(‎);v‎a r oS‎h eet ‎= oWB‎.Acti‎v eShe‎e t;‎v ar t‎a ble ‎= doc‎u ment‎.all.‎d ata;‎var‎hang‎= ta‎b le.r‎o ws.l‎e ngth‎;v‎a r li‎e = t‎a ble.‎r ows(‎0).ce‎l ls.l‎e ngth‎;/‎/ Add‎tabl‎e hea‎d ers ‎g oing‎cell‎by c‎e ll. ‎for ‎(i=0;‎i<han‎g;i++‎){ ‎for ‎(j=0;‎j<lie‎;j++)‎‎o Shee‎t.Cel‎l s(i+‎1,j+1‎).val‎u e = ‎t able‎.rows‎(i).c‎e lls(‎j).in‎n erTe‎x t;‎}}‎oXL‎.Visi‎b le =‎true‎;oX‎e‎r Cont‎r ol =‎true‎;} ‎//--‎></‎S CRIP‎T>‎导出‎到Word‎代码<‎s crip‎t lan‎g uage‎="vbs‎c ript‎">S‎u b bu‎i ldDo‎cse‎t tab‎l e = ‎d ocum‎e nt.a‎l l.da‎t ar‎o w = ‎t able‎.rows‎.leng‎t hc‎o lumn‎= ta‎b le.r‎o ws(1‎).cel‎l s.le‎n gth ‎Set‎objW‎o rdDo‎c = C‎r eate‎O bjec‎t("Wo‎r d.Do‎c umen‎t")‎objW‎o rdDo‎c.App‎l icat‎i on.D‎o cume‎n ts.A‎d d th‎e Temp‎l ate,‎Fals‎eob‎j Word‎D oc.A‎p plic‎a tion‎.Visi‎b le=T‎r ue‎Dim ‎t heAr‎r ay(2‎0,100‎00)‎f or i‎=0 to‎row-‎1fo‎r j=0‎to c‎o lumn‎-1t‎h eArr‎a y(j+‎1,i+1‎) = t‎a ble.‎r ows(‎i).ce‎l ls(j‎).inn‎e rTEX‎Tne‎x tn‎e xt‎o bjWo‎r dDoc‎.Appl‎i cati‎o n.Ac‎t iveD‎o cume‎n t.Pa‎r agra‎p hs.A‎d d.Ra‎n ge.I‎n sert‎B efor‎e("综合‎查询结果集‎") //‎显示表格标‎题o‎b jWor‎d Doc.‎A ppli‎c atio‎n.Act‎i veDo‎c umen‎t.Par‎a grap‎h s.Ad‎d.Ran‎g e.In‎s ertB‎e fore‎("") ‎Set ‎r ngPa‎r a = ‎o bjWo‎r dDoc‎.Appl‎i cati‎o n.Ac‎t iveD‎o cume‎n t.Pa‎r agra‎p hs(1‎).Ran‎g eW‎i th r‎n gPar‎a.B‎o ld =‎True‎//将标‎题设为粗体‎.Pa‎r agra‎p hFor‎m at.A‎l ignm‎e nt =‎1 //‎将标题居中‎.Fo‎n t.Na‎m e = ‎"隶书" ‎//设定标‎题字体‎.Font‎.Size‎= 18‎//设定‎标题字体大‎小En‎d Wit‎hSe‎t rng‎C urre‎n t = ‎o bjWo‎r dDoc‎.Appl‎i cati‎o n.Ac‎t iveD‎o cume‎n t.Pa‎r agra‎p hs(3‎).Ran‎g eS‎e t ta‎b Curr‎e nt =‎ObjW‎o rdDo‎c.App‎l icat‎i on.A‎c tive‎D ocum‎e nt.T‎a bles‎.Add(‎r ngCu‎r rent‎,row,‎c olum‎n)‎f or i‎= 1 ‎t o co‎l umn ‎obj‎W ordD‎o c.Ap‎p lica‎t ion.‎A ctiv‎e Docu‎m ent.‎T able‎s(1).‎R ows(‎1).Ce‎l ls(i‎).Ran‎g e.In‎s ertA‎f ter ‎theAr‎r ay(i‎,1)‎o bjWo‎r dDoc‎.Appl‎i cati‎o n.Ac‎t iveD‎o cume‎n t.Ta‎b les(‎1).Ro‎w s(1)‎.Cell‎s(i).‎R ange‎.Para‎g raph‎F orma‎t.ali‎g nmen‎t=1‎n ext ‎For ‎i =1 ‎t o co‎l umn ‎For ‎j = 2‎to r‎o wo‎b jWor‎d Doc.‎A ppli‎c atio‎n.Act‎i veDo‎c umen‎t.Tab‎l es(1‎).Row‎s(j).‎C ells‎(i).R‎a nge.‎I nser‎t Afte‎r the‎A rray‎(i,j)‎obj‎W ordD‎o c.Ap‎p lica‎t ion.‎A ctiv‎e Docu‎m ent.‎T able‎s(1).‎R ows(‎j).Ce‎l ls(i‎).Ran‎g e.Pa‎r agra‎p hF or‎m at.a‎l ignm‎e nt=1‎Nex‎tNe‎x t‎E nd S‎u b<‎/SCRI‎P T>‎三、直‎接在IE中‎打开,再存‎为EXCE‎L文件‎把读出‎的数据用<‎t able‎>格式,在‎网页中显示‎出来,同时‎,加上下一‎句即可把E‎X CEL表‎在客客户端‎显示。

asp.net使用动态模版导出word

asp.net使用动态模版导出word

使⽤动态模版导出word具体思路: 1.先制作Word模版,使⽤⽂本框+书签的⽅式来设计模版; 2.模版制作完之后,根据模版⽣成新⽂件,使⽤File.Copy⽅法,⽣成.doc格式新⽂件; 3.后台取得数据,参照⽹页渲染的⽅式标记数据流,⽅便之后的写⼊操作; 4.编辑新⽂件,根据程序中标记与书签的对应关系,利⽤类库中的⽅法来修改书签的内容,最后保存⽂件即可。

优点: 能够⾃定义元素的位置,⽅法也很简单易懂,如果只是表格之类的简单格式会很适⽤。

缺点: 灵活性不好,如果要套打的对象是⽹页,且不是表格形式的,还原程度不好,⽽且如果⽂字内容过多会出现超出⽂本框范围的情况。

操作过程&代码: 1)第⼀步,引⼊对应的程序集 如果不是使⽤第三⽅的类库的话,是不需要下载的,只要你的系统完整安装了office,你的系统程序集中就会带有操作Word的程序集。

⾸先,添加引⽤Microsoft.Office.Interop.Word,之后,在类中添加相对应的引⽤:using MSWord = Microsoft.Office.Interop.Word; //这⾥重命名为MSWord,之后使⽤的时候就可以简写了using System.IO;//要操作⽂件的话,要引⽤系统IOusing System.Reflection; 2)准备⼯作MSWord.Application wordApp = new MSWord.Application();//word应⽤程序变量MSWord.Document wordDoc;//word⽂档变量string TemplateFile = @"D:\Model.doc"; //模版⽂件的路径,string FileName = @"D:\" + DateTime.Now.ToString("yyyyMMddHHmmssffffff") + ".doc";//新⽂件的路径 3)拷贝模版⽣成新⽂件File.Copy(TemplateFile, FileName);//⾸先要拷贝⼀份⽂件object obj_FileName = FileName;//新建⼀个obj变量⽤于操作 4)设置操作类型,操作类型有很多中,这⾥要打开新⽂件,修改其中的内容wordDoc = wordApp.Documents.Open(ref obj_FileName);//打开新⽂件,进⾏操作wordDoc.Activate();//设置现在操作的⽂件 5)依据书签修改word内容//循环书签,判断书签名称,并为其赋值foreach (MSWord.Bookmark bm in wordDoc.Bookmarks){if ( == "billno"){bm.Select();bm.Range.Text = "2008";}if ( == "dated"){bm.Select();bm.Range.Text = DateTime.Now.ToString();}} 6)关闭⽂件wordDoc.SaveAs2(obj_FileName);//保存⽂件wordDoc.Close();//关闭⽂档对象wordApp.Quit();//关闭应⽤程序对象 7)杀进程,有的情况下,关闭Word⽂件会不成功,会残留很多word进程System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("WINWORD");foreach (System.Diagnostics.Process p in processes){bool b = p.MainWindowTitle == "";if (p.MainWindowTitle == ""){p.Kill();}} 8)下载Response.Clear();Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(FileName),System.Text.Encoding.UTF8));Response.ContentType = "application/msword";Response.TransmitFile(FileName);Response.Flush();Response.End(); 转⾃:https:///jydeng/p/4398500.html具体思路: 1.先制作Word模版,使⽤⽂本框+书签的⽅式来设计模版; 2.模版制作完之后,根据模版⽣成新⽂件,使⽤File.Copy⽅法,⽣成.doc格式新⽂件; 3.后台取得数据,参照⽹页渲染的⽅式标记数据流,⽅便之后的写⼊操作; 4.编辑新⽂件,根据程序中标记与书签的对应关系,利⽤类库中的⽅法来修改书签的内容,最后保存⽂件即可。

asp生成excel源代码

asp生成excel源代码

<!--#include file="../conn.asp"--><%dim s,sql,filename,fs,myfile,xSet fs = server.CreateObject("scripting.filesystemobject")'--假设你想让生成的EXCEL文件做如下的存放filename = Server.MapPath("班班通使用记录登记表.xls")'--如果原来的EXCEL文件存在的话删除它if fs.FileExists(filename) thenfs.DeleteFile(filename)end if'--创建EXCEL文件set myfile = fs.CreateTextFile(filename,true)Set rs = Server.CreateObject("ADODB.Recordset")'--从数据库中把你想放到EXCEL中的数据查出来sql = "select teacher_Name,teacher_use_time,teacher_use_class,teacher_use_snumber,teacher_use_jc,teacher_ use_ctitle,teacher_use_couse from teacher_use_table order by teacher_use_ID desc"rs.Open sql,connStartTime = Request("StartTime")EndTime = Request("EndTime")StartEndTime = "AddTime between #"& StartTime &" 00:00:00# and #"& EndTime &" 23:59:59#"strSql = "select teacher_Name,teacher_use_time,teacher_use_class,teacher_use_snumber,teacher_use_jc,teacher_ use_ctitle,teacher_use_couse from teacher_use_table"Set rstData =conn.execute(strSql)if not rstData.EOF and not rstData.BOF thendim trLine,responsestrstrLine=""strLine = strLine & "上课教师" & chr(9)strLine = strLine & "上课时间" & chr(9)strLine = strLine & "使用班级" & chr(9)strLine = strLine & "学生人数" & chr(9)strLine = strLine & "使用节次" & chr(9)strLine = strLine & "上课学科" & chr(9)strLine = strLine & "课程名称" & chr(9)'--将表的列名先写入EXCELmyfile.writeline strLineDo while Not rstData.EOFstrLine=""for each x in rstData.FieldsstrLine = strLine & x.value & chr(9)nextmyfile.writeline strLinerstData.MoveNextloopend ifResponse.Write "<br>&nbsp;&nbsp;&nbsp;&nbsp;生成EXCEL文件成功,点击<a href=""班班通使用记录登记表.xls"" target=""_blank"">下载</a>!"rstData.Closeset rstData = nothingConn.CloseSet Conn = nothing%>。

用ASP如何生成excel报表

用ASP如何生成excel报表

用ASP如何生成excel报表生成报表是做系统经常遇到的事,一些企业或者单位往往要求EXCEL格式的报表!第一种方式利用FSO生成文本文件。

程序代码:Set fs = server.CreateObject("scripting.filesystemobject")'--假设你想让生成的EXCEL文件做如下的存放filename = "c:\online.xls"'-创建EXCEL文件set myfile = fs.CreateTextFile(filename,true)rs.Open sql,connif rs.EOF and rs.BOF thenelsedim strLine,responsestrstrLine=""For each x in rs.fieldsstrLine= strLine & & chr(9)Next'--将表的列名先写入EXCELmyfile.writeline strLineDo while Not rs.EOFstrLine=""for each x in rs.FieldsstrLine= strLine & x.value & chr(9)next'--将表的数据写入EXCELmyfile.writeline strLiners.MoveNextloopend ifSet fs=Nothing这方法的好处是不管有多少条记录速度上是没问题但是有一个很严重的缺点就是生成的EXCEL文件的格式不能得到很好的控制例如单元格的格式不能改变等第二种方法用EXCEL组件+EXCEL模板原理是打开一个存在的EXCEL模板文件然后写入数据后在另存为所要的报表文件优点:格式能很好的控制缺点:速度上很慢 (因为控件接口很费资源)看了微软的说明又想到了用数组做中转的方法只要打开一个接口写入所有数据,于是问题得到了解决,可是新的问题出来了,100万或者更高的记录时数组就的空间分配就成了问题了.工夫不负有心人 ,经过几天努力终于完美解决就是记录多时分批写入~~~~~~~~~程序代码:sub writetoarr(lines,begin_rs,begin_exl)'====================================== ======================================== '过程writetoarr(lines,begin_rs,begin_exl)写入EXCEL'lines:要写入的记录条数'begin_rs:从第几条记录开始'begin_exl:要写入的EXCEL开始位置'====================================== ======================================== redim temparr(lines-1,11)'--将表的列名存放到数组'--将表的数据存放到数组ii=1For i = begin_rs To begin_rs+lines-1j=0'response.write ii&"<br>"For each x in rs.fieldstemparr(ii-1,j)=x.valuej=j+1Nextii=ii+1rs.movenextNextobjExcelSheet.Range("A"&begin_exl).Resize(lines, 12).Value = temparrredim temparr(0,0)response.write "从A"&begin_exl&"开始写到A"&begin_exl+lines&"<br>"response.write "从第"&begin_rs&"条到"&begin_rs+lines&"条记录<br>"response.write "共写入"&lines&"行<br>"response.write "-------------------------<br>"end submaxk=rs.recordcountbeginrs=1 '从第几条记录开始,一般是1beginexl=2 '从excel的第几行开始写,一般是2liness=200 '每次操作多少条记录,不建议超过10万do while maxk>0if maxk>liness thencall writetoarr(liness,beginrs,beginexl)beginrs=beginrs+linessbeginexl=beginexl+linessmaxk=maxk-linesselsecall writetoarr(maxk,beginrs,beginexl)exit doend ifloop。

ASP导出为Word或Excel的最简单方法

ASP导出为Word或Excel的最简单方法

ASP导出为Word或Excel的最简单方法2010-09-04 15:05方法1:把一个Word文档另存为XML格式(可能需要Office2003才能支持),然后你就可以用操作XML文件的方法,来对这个文件中指定的文字替换成你需要的内容。

重新打开这个文件,你会发现它是在Word中打开的,这样可以用Word来继续编辑或者打印。

方法2:我在做一项目时,客户要求要将从数据库中获取数据后的ASP页面导出成EXCEL或WORD文档。

经本人试验后找出了最简单的方法:在ASP文件的最开头位置加入下面的代码就可以了,非常简单。

Asp代码1.EXCEL2.<%3.Response.ContentType ="application/vnd.ms-excel"4.Response.AddHeader "Content-Disposition", "attachment; filename=红宝网络表格.xls"5.%>6.7.WORD8.<%9.Response.ContentType ="application/vnd.ms-word"10.Response.AddHeader "Content-Disposition", "attachment; filename=红宝网络文档.doc"11.%>导出为WORD时,若文档中含有表格,需要打打印,则要在导出的页面中加入下面的样式。

Css代码1.<style type="text/css">2.<!--3.table{4.border-collapse:collapse;border:none;mso-border-alt:solidwindowtext .5pt;5.mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm5.4pt;mso-border-insideh:6..5pt solid windowtext;mso-border-insidev:.5pt solidwindowtext;border-left:solid windowtext 1.0pt;border-top:solid windowtext 1.0pt;7.}8.td{9.border-top:none;border-left:10.none;border-bottom:solid windowtext 1.0pt;border-right:solidwindowtext 1.0pt;11.mso-border-top-alt:solidwindowtext .5pt;mso-border-left-alt:solid windowtext .5pt;12.mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm5.4pt;13.}14.-->15.</style>我打字系统项目中的一个导出为EXCEL文件的实例代码如下:Asp代码1.<!--#include file="hbwlConfig.asp" -->2.<%Response.ContentType ="application/vnd.ms-excel"3.Response.AddHeader "Content-Disposition", "attachment;filename=chengji.xls"%>4.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd">5.<html xmlns="/1999/xhtml">6.<head>7.<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />8.<title>打字成绩</title>9.<style type="text/css">10..tableWg {border:1px solid #9bbde6;}11..tableWg tr{text-align:center;}12..tableWg td{ border-bottom:1px dotted #9bbde6; border-right:1pxdotted #9bbde6;}13.</style>14.</head>15.<body>16.<%sql=session("chengjisql")17.response.Write hbwl.dbSelect(sql,0,1,"",0,"",0,"tableWg")%>18.</body>19.</html>20.<%set hbwl=nothing%>文章来源:季长旭博客鹿胎膏。

使用phpofficephpspreadsheet,导入、导出数据

使用phpofficephpspreadsheet,导入、导出数据

使⽤phpofficephpspreadsheet,导⼊、导出数据安装composer require phpoffice/phpspreadsheet//use \PhpOffice\PhpSpreadsheet\Spreadsheet;//use \PhpOffice\PhpSpreadsheet\IOFactory;//use \PHPExcel_Style_NumberFormat; //设置列的格式==>>设置⽂本格式//导⼊数据public function export(){//上传excel⽂件$file = request()->file('myfile'); //获取表格的⼤⼩,限制上传表格的⼤⼩5M$file_size = $_FILES['myfile']['size'];if ($file_size > 50 * 1024 * 1024) {$this->error('⽂件⼤⼩不能超过5M');exit();}//限制上传表格类型$fileExtendName = substr(strrchr($_FILES['myfile']["name"], '.'), 1);//application/vnd.ms-excel 为xls⽂件类型if ($fileExtendName != 'xls') {$this->error('必须为excel表格,且必须为xls格式!');exit();}header("content-type:text/html;charset=utf-8");//将⽂件保存到public/uploads⽬录下⾯$info = $file->validate(['size' => 5 * 1024 * 1024, 'ext' => 'xls,xlsx'])->move('uploads');if ($info) {//获取上传到后台的⽂件名$fileName = $info->getSaveName();//获取⽂件路径$filePath = '/www/wwwroot/obd-api/'. 'public' . DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . $fileName;} else {return json(['status' => '1', 'message' => '⽂件过⼤或格式不正确导致上传失败-_-!']);}require dirname(dirname(dirname(__DIR__))).'/vendor/autoload.php';$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Xlsx');$reader->setReadDataOnly(TRUE);$spreadsheet = $reader->load($filePath); //载⼊excel表格$worksheet = $spreadsheet->getActiveSheet();$highestRow = $worksheet->getHighestRow(); // 总⾏数$highestColumn = $worksheet->getHighestColumn(); // 总列数$highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell\Coordinate::columnIndexFromString($highestColumn); // e.g. 5$lines = $highestRow - 2;if ($lines <= 0) {exit('Excel表格中没有数据');}for ($row = 3; $row <= $highestRow; ++$row) {$temp = array('code' => $worksheet->getCellByColumnAndRow('1', $row)->getValue(),'name' => $worksheet->getCellByColumnAndRow('2', $row)->getValue(),'class' => $worksheet->getCellByColumnAndRow('3', $row)->getValue(),'describe' => $worksheet->getCellByColumnAndRow('4', $row)->getValue(),'symptom' => $worksheet->getCellByColumnAndRow('5', $row)->getValue(),'cause' => $worksheet->getCellByColumnAndRow('6', $row)->getValue(),'scheme' => $worksheet->getCellByColumnAndRow('7', $row)->getValue(),);$list[] = $temp;}}。

ASP.NET之Excel下载模板、导入、导出操作

ASP.NET之Excel下载模板、导入、导出操作

之Excel下载模板、导⼊、导出操作本⽂介绍了下Excel下载模板、导⼊、导出操作,供⼤家参考,具体内容如下1.下载模板功能protected void btnDownload_Click(object sender, EventArgs e){var path = Server.MapPath(("upfiles\\") + "test.xlt"); //upfiles-⽂件夹 test.xlt-⽂件var name = "test.xlt";try{var file = new FileInfo(path);Response.Clear();Response.Charset = "GB2312";Response.ContentEncoding = System.Text.Encoding.UTF8;Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(name)); //头信息,指定默认⽂件名Response.AddHeader("Content-Length", file.Length.ToString());//显⽰下载进度Response.ContentType = "application/ms-excel"; // 指定返回的是⼀个不能被客户端读取的流,必须被下载Response.WriteFile(file.FullName); // 把⽂件流发送到客户端pleteRequest();}catch (Exception ex){Response.Write("<script>alert('错误:" + ex.Message + ",请尽快与管理员联系')</script>");}}2.导⼊数据Excel数据导⼊到数据库中。

用PageOffice实现批量转换导出Word文档

用PageOffice实现批量转换导出Word文档

用PageOffice实现C# 批量转换导出Word文档在某些涉及到报表的项目开发中,可能经常会遇到需要批量的生成某些文档的操作,这些文档若是要点击一下,生成一个的话,就太浪费时间了。

但若用FileMakerCtrl控件来实现的话就简单容易的多了。

下面我就以批量转换10个Word文档为例来分享一下FileMakerCtrl控件的使用方法。

第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站或项目的根目录下添加pageoffice文件夹(在PageOffice官方网站的“下载中心”中可下载相应的压缩包,解压之后直接将PageOffice实例代码里的pageoffice文件夹拷贝到根目录下就可以了)。

第二步:在网站或项目中添加文件夹存放word模板文件,我习惯命名为“doc”,将要打开的文件拷贝到该文件夹下,我要转换的文件为“template.doc”,该文件中有一个书签,名称为“PO_company”。

第三步:在网站或项目中创建动态页面FileMaker.aspx。

在工具箱中拖动一个FileMakerCtrl控件到页面上(FileMakerCtrl控件位于工具箱最下方)。

在FileMaker.aspx.cs后台页面中,添加代码如下://设置服务器页面FileMakerCtrl1.ServerPage = "pageoffice/server.aspx";string id = Request.QueryString["id"];if (id != null&& id.Length > 0){PageOffice.WordWriter.WordDocument doc = newPageOffice.WordWriter.WordDocument();//禁用右击事件doc.DisableWindowRightClick = true;//给数据区域赋值,即把数据填充到模板中相应的位置doc.OpenDataRegion("PO_company").Value = "北京卓正志远软件有限公司" + id;//设置保存页面FileMakerCtrl1.SaveFilePage = "Savemaker.aspx?id=" + id;FileMakerCtrl1.SetWriter(doc);//设置转换完成后执行的JS函数FileMakerCtrl1.JsFunction_OnProgressComplete = "OnProgressComplete()";//打开文档FileMakerCtrl1.FillDocument(Server.MapPath("doc/template.doc"),PageOffice.DocumentOpenType.Word);}在前台添加JS函数OnProgressComplete()如下:function OnProgressComplete() {window.parent.myFunc(); //调用父页面(Default.aspx)的js函数}第四步:在网站或项目中创建动态页面SaveMaker.aspx,保存转换后的Word 文档到本地磁盘上,部分代码如下://定义FileSaver对象PageOffice.FileSaver fs = new PageOffice.FileSaver();string fileName = "maker" + id + fs.FileExtName;//将Word文档保存到本地磁盘上fs.SaveToFile(Server.MapPath("doc/") + fileName);fs.Close();第五步:在网站或项目中创建动态页面Default.aspx。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:
.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext;border-left:solid windowtext 1.0pt;border-top:solid windowtext 1.0pt;
Asp代码
EXCEL
<%
Response.ContentType ="application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=表格.xls"
%>
mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;
}
-->
</style>
<style type="text/css">
<!--
table{
border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
WORD
<%
Response.ContentType ="application/vnd.ms-word"
Response.AddHeader "Content-Disposition", "attachment; filename=文档.doc"
%>
导出为WORD时,若文档中含有表格,需要打打印,则要在导出的页面中加入下面的样式。
</style> பைடு நூலகம்
</head>
<body>
<%sql=session("chengjisql")
response.Write hbwl.dbSelect(sql,0,1,"",0,"",0,"tableWg")%>
</body>
</html>
<%set hbwl=nothing%>
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
<style type="text/css">
.tableWg {border:1px solid #9bbde6;}
.tableWg tr{text-align:center;}
.tableWg td{ border-bottom:1px dotted #9bbde6; border-right:1px dotted #9bbde6;}
mso-border-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;
}
-->
</style>
系统项目中的一个导出为EXCEL文件的实例代码如下:
Asp代码
<!--#include file="hbwlConfig.asp" -->
}
td{
border-top:none;border-left:
none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
<%Response.ContentType ="application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=chengji.xls"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
.5pt solid windowtext;mso-border-insidev:.5pt solid windowtext;border-left:solid windowtext 1.0pt;border-top:solid windowtext 1.0pt;
}
td{
border-top:none;border-left:
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>成绩</title>
Css代码
<style type="text/css">
<!--
table{
border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
mso-yfti-tbllook:480;mso-padding-alt:0cm 5.4pt 0cm 5.4pt;mso-border-insideh:
相关文档
最新文档