web导出excel数据格式化.docx_第1页
web导出excel数据格式化.docx_第2页
web导出excel数据格式化.docx_第3页
web导出excel数据格式化.docx_第4页
web导出excel数据格式化.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

web导出excel数据格式化 原文地址:/myaspnet/archive/2011/05/06/2038490.html当我们把web页面上的数据导成excel形式时,有时候我们的数据需要以特定的格式呈现出来,这时候我们就需要给cell添加一些样式规格信息。首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式:1)文本:vnd.ms-excel.numberformat:2)日期:vnd.ms-excel.numberformat:yyyy/mm/dd3)数字:vnd.ms-excel.numberformat:#,#0.004)货币:vnd.ms-excel.numberformat:¥#,#0.005)百分比:vnd.ms-excel.numberformat:#0.00%这些格式你也可以自定义,比如年月你可以定义为:yy-mm等等。那么知道了这些格式,怎么去把这些格式添加到cell中呢?很简单,我们只需要把样式添加到对应的标签对(即闭合标签)即可。如,给标签对添加样式,如下410522198402161833同样,我们也可以给添加样式,也可以给,添加样式,这样就会引入一个问题,你注意到了吗?先看如下的代码: 542 0.25 542 0.25 对,当我们在父标签对和子标签对都添加样式时,数据会以哪一个样式呈现呢?经过测试,会以离数据最近的 样式呈现,这也是符合我们的意愿的(好像也符合一句俗话:县官不如现管)。这样我们就可以通过改变样式而改变数据在excel中呈现的方式(这些样式规格 你可以在前台页面上添加也可以在后台代码里给相应的控件如:DataGrid等添加这些样式)。如果你的应用比较简单,那么这已经足够满足你的需求。但如 果你的应用比较复杂,那么你也可以采取一种方式来达到不同的数据呈现效果。下面,我就举一个稍微复杂一点的应用。例如:你的数据要呈现给不同国家和地区的用户查看,这样数据的呈现的格式就会不一样,那么我们怎么解决这个问题呢?当然了,你可以手工把这些数据处理好,但这毕竟不是最好的方法,因为如果我们每增加一个其他国家或地区的用户,那么我们就需要把所有的数据以客户要求的格式处理一遍,当数据量很大时,这无疑是一件很沉重且无聊的工作。那么我们究竟应该怎样解决类似这样的问题呢?下面我说一下,我自己的看法:把这些格式化的信息抽取到一个xml文件中,程序运行时根据不同的客户读取不同的格式化信息,然后把这些格式化信息动态的添加到我们的数据上,这样,当我们每增加一个其他国家或地区的用户时,我们只需要多增加一个xml文件,把对应的格式化信息写入这个xml文件,然后当这个国家或地区的用户查看时,就把对应的格式化信息读取出来应用到数据上即可。以上这个例子是我突然想到的,相信跨国企业的公司会遇到类似的问题,解决方法只是提供给大家一个思路,希望可以起到抛砖引玉的效果excel常用的一些格式2010-11-17 13:131) 文本:vnd.ms-excel.numberformat:2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd3) 数字:vnd.ms-excel.numberformat:#,#0.004) 货币:vnd.ms-excel.numberformat:¥#,#0.005) 百分比:vnd.ms-excel.numberformat: #0.00%Excel导出及数据格式化处理(摘)public void ToExcel(System.Web.UI.Control ctl, string FileName) HttpContext.Current.Response.Charset = UTF-8; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default; HttpContext.Current.Response.ContentType = application/ms-excel; HttpContext.Current.Response.AppendHeader(Content-Disposition, attachment;filename= + + FileName + .xls); ctl.Page.EnableViewState = false; System.IO.StringWriter tw = new System.IO.StringWriter(); HtmlTextWriter hw = new HtmlTextWriter(tw); ctl.RenderControl(hw); HttpContext.Current.Response.Write(tw.ToString(); HttpContext.Current.Response.End(); public override void VerifyRenderingInServerForm(Control control)/base.VerifyRenderingInServerForm(control); protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)if (e.Row.RowType = DataControlRowType.DataRow)/e.Row.Cells0.Attributes.Add(style, vnd.ms-excel.numberformat:);/这里是将要导出到execl里的第一列格式化为字符类型。/e.Row.Cells3.Attributes.Add(style, vnd.ms-excel.numberformat:¥#,#.00);/这里是格式化为货币类型。 e.Row.Cells4.Attributes.Add(style, vnd.ms-excel.numberformat:);/1) 文本:vnd.ms-excel.numberformat:/2) 日期:vnd.ms-excel.numberformat:yyyy/mm/dd/3) 数字:vnd.ms-excel.numberformat:#,#0.00/4) 货币:vnd.ms-excel.numberformat:¥#,#0.00/5) 百分比:vnd.ms-excel.numberformat: #0.00% js 将table内容导入Excelfunction MakeExcel()var i, j, n;tryvar xls = new ActiveXObject(Excel.Application);catch(e)alert( 要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。请点击【帮助】了解浏览器设置方法!);return ;xls.visible =true; / 设置excel为可见var xlBook = xls.Workbooks.Add;var xlsheet = xlBook.Worksheets(1);xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7).mergecells=true;xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,7).value=发卡记录;xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,3).Interior.ColorIndex=5; / 设置底色为蓝色/ xlsheet.Range(xlsheet.Cells(1,1),xlsheet.Cells(1,6).Font.ColorIndex=4; / 设置字体色/ xlsheet.Rows(1). Interior .ColorIndex = 5 ;/设置底色为蓝色 设置背景色 Rows(1).Font.ColorIndex=4xlsheet.Rows(1).RowHeight = 25;xlsheet.Rows(1).Font.Size=14;xlsheet.Rows(1).Font.Name=黑体;xlsheet.Columns(A:D).ColumnWidth =18;xlsheet.Columns(2).NumberFormatLocal=;xlsheet.Columns(7).NumberFormatLocal=;/设置单元格内容自动换行 range.WrapText = true ;/设置单元格内容水平对齐方式 range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;/设置单元格内容竖直堆砌方式/range.VerticalAlignment=Excel.XlVAlign.xlVAlignCenter/range.WrapText = true; xlsheet.Rows(3).WrapText=true 自动换行/设置标题栏/xlsheet.Cells(2, 1).Value = 卡号;/xlsheet.Cells(2, 2).Value = 密码;/xlsheet.Cells(2, 3).Value = 计费方式;/xlsheet.Cells(2, 4).Value = 有效天数;/xlsheet.Cells(2, 5).Value = 金额;/xlsheet.Cells(2, 6).Value = 所属服务项目;/xlsheet.Cells(2, 7).Value = 发卡时间;var oTable = document.allfors:data;var rowNum = oTable.rows.length;for(i = 1; i = rowNum; i+)for (j = 1; j = 7; j+)/html table类容写到excelxlsheet.Cells(i + 1, j).Value = oTable.rows(i - 1).cells(j - 1).innerHTML;/ xlsheet.Range(xlsheet.Cells(i, 4), xlsheet.Cells(i-1, 6).BorderAround , 4/ for(mn=1,mn=6;mn+) . xlsheet.Range(xlsheet.Cells(1, mn), xlsheet.Cells(i1, j).Columns.AutoFit;xlsheet.Columns.AutoFit;xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(rowNum+1,7).HorizontalAlignment =-4108;/居中xlsheet.Range( xlsheet.Cells(1,1),xlsheet.Cells(1,7).VerticalAlignment =-4108;xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7).Font.Size=10;xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7).Borders(3).Weight = 2; /设置左边距xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7).Borders(4).Weight = 2;/设置右边距xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7).Borders(1).Weight = 2;/设置顶边距xlsheet.Range( xlsheet.Cells(2,1),xlsheet.Cells(rowNum+1,7).Borders(2).Weight = 2;/设置底边距xls.UserControl = true; /很重要,不能省略,不然会出问题 意思是excel交由用户控制xls=null;xlBook=null;xlsheet=null;卡号密码计费方式有效天数金额所属服务项目发卡时间h000010010543860计点1 2.0测试项目2006-06-23 10:14:40.843h000010011683352计点12.0测试项目2006-06-23 10:14:40.843h000010012433215计点12.0测试项目2006-06-23 10:14:40.843h000010013393899计点12.0测试项目2006-06-23 10:14:40.84

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论