本文的目的是总结一些在做Excel导出功能时需要注意的样式细节。使用环境是Asp.Net,数据集的形式是Html Table,Excel还是识别一些CSS代码的,所以我们就来总结一下。

  1.记得为Table添加样式style="border-collapse:collapse;",这样使得表格边框自动合并,是边框不至于过粗。

  2.如果为表格加细边框,不要使用style="border:solid 1px Black;",请使用style="border:solid .5pt Black;"。(使用前者的话,在Excel的边框显示效果不佳)

  3.换行的样式为<br style="mso-data-placement:same-cell;" />。(没有为<br />标记使用以上样式的话,在Excel将表现为另起一行)

  4.表格格式为文本的样式为style="mso-number-format: '\@';"。

  5.在HTML中可以使用复合样式class='a b',但是Excel只是别单个样式,即class='a'或者class='b',如果使用复合样式则显示时不会载入任何样式。

  6.Excel页面设置,在文档没有出现自动换行的前提下,这个打印样式每页的行数是固定的,如A4纵向:44行,A4横向30行,A3纵向71行,A3横向47行。

  7.通过Response.Write方式导出到Excel,对文档页面进行设置,需要手动添加@page样式,设置PaperSizeIndex属性。直接贴代码好了:

 
case "A3纵向":
pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;} --></style>";
PaperSizeIndex = "8";
break;
case "A3横向":
pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-page-orientation:landscape;} --></style>";
PaperSizeIndex = "8";
break;
case "A4纵向":
pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;} --></style>";
PaperSizeIndex = "9";
break;
case "A4横向":
pageStyle = "<style><!--table @page{margin:1.0in .75in 1.0in .75in;mso-header-margin:.5in;mso-footer-margin:.5in;mso-page-orientation:landscape;} --></style>";
PaperSizeIndex = "9";
break;
 

  8.通过Response.Write方式导出到Excel时,如果目标是一个HTML控件(非服务器端),需要先添加runat属性,然后以下方法获取控件的InnerHTML代码。

System.IO.StringWriter sw = new System.IO.StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
YourHtmlControl.RenderControl(htw);

   记得加上

public override void VerifyRenderingInServerForm(Control control){}

  9.通过Response.Write方式导出到Excel时出现乱码的一种情况是页面的编码格式和导出Excel方法中的页面编码格式不一致。

导出方法:

page.Response.Charset = "utf-8";
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
page.Response.ContentType = "application/ms-execl";

页面导出:

string excelText = "<meta http-equiv=\"content-type\" content=\"application/ms-excel;charset=UTF-8\" />" + LblResult.Text;

注意:两段代码中的编码格式要相同,即要么都是‘UTF-8’,要么都是‘GB2312’。

  补充:样式细节,可以在导出后的Excel文件中,选择左上角文件->网页预览->查看源文件,观察头文件可以学习到更多。

.Net数据集导出到Excel样式细节---------------摘自别人的的更多相关文章

  1. sas 数据集导出到excel

    PROC EXPORT DATA= Loan.BOM_FILENAME_2      OUTFILE= "D:\output.xls"      DBMS=EXCEL REPLAC ...

  2. JS 将Table内容导出到Excel(样式设计)

    转载请注明来源:https://www.cnblogs.com/hookjc/ function saveAsExcel(tableID){ var tb = new TableToExcel(tab ...

  3. DataSet数据导出为Excel文档(每个DataTable为一个Sheet)

    Web项目中,很多时候须要实现将查询的数据集导出为Excel文档的功能,很多时候不希望在工程中添加对Office组件相关的DLL的引用,甚至有时候受到Office不同版本的影响,导致在不同的服务器上部 ...

  4. Excel报表开发(本节主要讲述导出到Excel操作)

    一.Excel导入到GridView以及数据库操作比较简单,这儿不做过多讲解,需要注意的有二点: 1.设置IMEX=1将强制混合数据转换为文本. 2.解决Excel驱动程序默认读取8行:将" ...

  5. asp.net数据导出到excel表格,并设置表格样式

    1.首先在项目中添加引用

  6. C#将数据集DataSet中的数据导出到EXCEL文件的几种方法

    using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...

  7. phpStudy6——php导出可以设置样式的excel表格

    前言: 一般的后台管理页面肯定少不了excel表格导出的功劳,尤其是那些电商平台的订单导入导出,用户列表的导入导出等,那么本文就介绍php是如何导出excel表格的. php导出excel方法有很多, ...

  8. DevExpress导出Excel样式设置

    /// <summary> /// 导出到Excel /// </summary> /// <param name="gridControl"> ...

  9. nativeexcel数据集导出excel

    nativeexcel数据集导出excel uses Dataset2Excel; procedure Tfdm.exportXLS(dataset: TDataSet);var xls: TData ...

随机推荐

  1. /proc/[pid]/status

    http://man7.org/linux/man-pages/man5/proc.5.html /proc/[pid]/status Provides much of the information ...

  2. 深入理解TCP建立和关闭连接

    建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端 接收方发送的确认信息中包含了自 ...

  3. 数据挖掘入门系列教程(十一点五)之CNN网络介绍

    在前面的两篇博客中,我们介绍了DNN(深度神经网络)并使用keras实现了一个简单的DNN.在这篇博客中将介绍CNN(卷积神经网络),然后在下一篇博客中将使用keras构建一个简单的CNN,对cifa ...

  4. vue2.x学习笔记(三十)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12682902.html. 状态管理 类Flux状态管理的官方实现 由于状态零散地分布在许多组件和组件之间的交互中, ...

  5. linux 二级目录结构

    Linux系统里面目录的顶点都是根 /etc /etc/passwd : Linux用户登陆的文件 /etc/group : 存放Linux用户组的文件 /etc/shadow :存放用户密码的文件 ...

  6. Python 正则表达式——re模块介绍

    Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.match函数 re.match从字符串的起始位置匹配,如果起始位置匹配不成功,则matc ...

  7. Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机

    一.Tomcat体系结构 从conf/server.xml可体现Tomcat的体系.一个Server可有多个service,一个service可以有多个连接器connector,每个连接器暴露出不同的 ...

  8. C#时间与时间戳格式互相转化

    C#时间格式转换为时间戳(互转) 时间戳定义为从格林威治时间 1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数. using UnityEn ...

  9. RF(表格数据获取)

    一.表格数据获取 Get Table Cell [locator | row | col] 获取表格数据 Open Browser file:///D:/HBuilderX/workspace/Pro ...

  10. JVM 运行时数据区(二)

    @ 目录 运行时数据区 共享区 堆区 方法区 隔离区 虚拟机栈 栈帧 本地方法栈 程序计数器 运行时数据区 JVM 运行时数据区主要分为5块 方法区 JDK1.8以后叫做元数据区(Metaspace) ...