c#将数据导入Excel另类方法
今天公司突然给个Excel模版,要将数据导入。这方法网上应该一搜一大把,但奇怪的是找了几种方法居然不理想。其中有一篇,大概是讲用模版且分页导出Excel。试了作者的例子。使用它提供的方法必须分页,每页25条,多了还不行。显示不符合我的要求。
使用ASP.NET中的DATAGRID控件可以使用导出Excel。但其导出的本质是Response一段HTML代码,并且设置输出类型为Excel即可。其实这种方法与控件没有关系,换言之,只要你设置了HTML代码,以Excel类型输出到页面,即可实现任意你想要的格式。
但现在的问题是这个格式 可能并不是你的HTML代码在页面上体现的形式,因为你定义的CSS可能输出到Excel它并不支持。那么怎么办呢?
我突然想到Excel要是有导出HTML功能岂不美栽?打开Excel。点击 文件。出现在菜单中 出现了 另存为网页。在接下来出现的对话框中 选择 工作表,而不要选择 整体工作薄,因为如果选择整个工作薄,这样导出后它会将CSS存为单独文件。我们稍后使用使用起来不便。
选择保存后,会生成一个单一的HTML文件,并且CSS样式都有,这里的CSS样式很重要,它在Excel中会得到支持。
然后我们可以读取这个HTML代码,需要注意的是,需要先把<html</html>这二个标记去掉。否则输出不了Excel。同时最好去掉这些代码中的JS代码。
然后你可以将你的数据读取放入到DataTable中,然后循环<tr>放入,即可!
下面给出一个示例代码。
private string data()
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
#region 样式
sb.Append("<head>");
sb.Append("<meta http-equiv=Content-Type content=\"text/html; charset=gb2312\"> ");
sb.Append("<style id=\"主要银行理财产品调研0901-0907第一期_31508_Styles\">");
sb.Append("<!--table");
sb.Append(" {mso-displayed-decimal-separator:\"\\.\";");
sb.Append(" mso-displayed-thousand-separator:\"\\,\";}");
sb.Append(".font531508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:9.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;}");
sb.Append(".font631508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;}");
sb.Append(".font731508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:11.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;}");
sb.Append(".font831508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;}");
sb.Append(".font931508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;}");
sb.Append(".font1031508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"\\000B \", sans-serif;");
sb.Append(" mso-font-charset:0;}");
sb.Append(".font1131508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\\02CE\\0325, sans-serif;");
sb.Append(" mso-font-charset:0;}");
sb.Append(".font1231508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\\02CE\\0325, sans-serif;");
sb.Append(" mso-font-charset:0;}");
sb.Append(".font1331508");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;}");
sb.Append(".xl2431508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl2531508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl2631508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl2731508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl2831508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:Percent;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:top;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl2931508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:Percent;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl3031508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl3131508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"\\000B \", sans-serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl3231508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\\02CE\\0325, sans-serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl3331508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl3431508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:Percent;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl3531508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:top;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl3631508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:top;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl3731508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:\"m\\0022月\\0022d\\0022日\\0022\";");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl3831508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:Percent;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl3931508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\\02CE\\0325, sans-serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl4031508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl4131508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:right;");
sb.Append(" vertical-align:middle;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl4231508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:0%;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl4331508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\\02CE\\0325, sans-serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl4431508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl4531508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl4631508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:right;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl4731508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl4831508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:none;");
sb.Append(" border-left:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl4931508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:none;");
sb.Append(" border-left:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl5031508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:none;");
sb.Append(" border-left:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl5131508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:none;");
sb.Append(" border-left:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl5231508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:Percent;");
sb.Append(" text-align:left;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:none;");
sb.Append(" border-left:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl5331508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:none;");
sb.Append(" border-left:.5pt solid windowtext;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append(".xl5431508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:general;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:.5pt solid windowtext;");
sb.Append(" border-right:.5pt solid windowtext;");
sb.Append(" border-bottom:.5pt solid windowtext;");
sb.Append(" border-left:none;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:normal;}");
sb.Append(".xl5531508");
sb.Append(" {padding-top:1px;");
sb.Append(" padding-right:1px;");
sb.Append(" padding-left:1px;");
sb.Append(" mso-ignore:padding;");
sb.Append(" color:windowtext;");
sb.Append(" font-size:10.0pt;");
sb.Append(" font-weight:700;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:\"Times New Roman\", serif;");
sb.Append(" mso-font-charset:0;");
sb.Append(" mso-number-format:General;");
sb.Append(" text-align:center;");
sb.Append(" vertical-align:middle;");
sb.Append(" border-top:none;");
sb.Append(" border-right:none;");
sb.Append(" border-bottom:.5pt solid windowtext;");
sb.Append(" border-left:none;");
sb.Append(" background:white;");
sb.Append(" mso-pattern:auto none;");
sb.Append(" white-space:nowrap;}");
sb.Append("ruby");
sb.Append(" {ruby-align:left;}");
sb.Append("rt");
sb.Append(" {color:windowtext;");
sb.Append(" font-size:9.0pt;");
sb.Append(" font-weight:400;");
sb.Append(" font-style:normal;");
sb.Append(" text-decoration:none;");
sb.Append(" font-family:宋体;");
sb.Append(" mso-generic-font-family:auto;");
sb.Append(" mso-font-charset:134;");
sb.Append(" mso-char-type:none;}");
sb.Append("-->");
sb.Append("</style>");
sb.Append("</head>");
sb.Append("<body>");
sb.Append("<!--[if !excel]> <![endif]-->");
sb.Append("<!--下列信息由 Microsoft Office Excel 的“发布为网页”向导生成。-->");
sb.Append("<!--如果同一条目从 Excel 中重新发布,则所有位于 DIV 标记之间的信息均将被替换。-->");
sb.Append("<!----------------------------->");
sb.Append("<!--“从 EXCEL 发布网页”向导开始-->");
sb.Append("<!----------------------------->");
sb.Append("<div id=\"主要银行理财产品调研0901-0907第一期_31508\" align=center x:publishsource=\"Excel\">");
sb.Append("<table x:str border=0 cellpadding=0 cellspacing=0 width=1815 class=xl2631508");
sb.Append(" style='border-collapse:collapse;table-layout:fixed;width:1362pt'>");
sb.Append(" <col class=xl2631508 width=86 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 2752;width:65pt'>");
sb.Append(" <col class=xl2631508 width=82 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 2624;width:62pt'>");
sb.Append(" <col class=xl3931508 width=497 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 15904;width:373pt'>");
sb.Append(" <col class=xl3931508 width=54 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 1728;width:41pt'>");
sb.Append(" <col class=xl3931508 width=184 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 5888;width:138pt'>");
sb.Append(" <col class=xl2631508 width=111 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 3552;width:83pt'>");
sb.Append(" <col class=xl2631508 width=234 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 7488;width:176pt'>");
sb.Append(" <col class=xl4031508 width=63 span=2 style='mso-width-source:userset;");
sb.Append(" mso-width-alt:2016;width:47pt'>");
sb.Append(" <col class=xl4131508 width=63 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 2016;width:47pt'>");
sb.Append(" <col class=xl4031508 width=141 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 4512;width:106pt'>");
sb.Append(" <col class=xl2631508 width=63 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 2016;width:47pt'>");
sb.Append(" <col class=xl4031508 width=63 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 2016;width:47pt'>");
sb.Append(" <col class=xl2631508 width=111 style='mso-width-source:userset;mso-width-alt:");
sb.Append(" 3552;width:83pt'>");
sb.Append(" <tr height=17 style='height:12.75pt'>");
sb.Append(" <td colspan=3 height=17 class=xl5531508 width=665 style='height:12.75pt;");
sb.Append(" width:500pt'>9<font class=\"font831508\">月</font><font class=\"font1331508\">15</font><font");
sb.Append(" class=\"font831508\">日</font><font class=\"font1331508\">-9</font><font");
sb.Append(" class=\"font831508\">月</font><font class=\"font1331508\">22</font><font");
sb.Append(" class=\"font831508\">日销售产品</font></td>");
sb.Append(" <td class=xl3931508 width=54 style='width:41pt'> </td>");
sb.Append(" <td class=xl3931508 width=184 style='width:138pt'> </td>");
sb.Append(" <td class=xl2631508 width=111 style='width:83pt'> </td>");
sb.Append(" <td class=xl2631508 width=234 style='width:176pt'> </td>");
sb.Append(" <td class=xl4031508 width=63 style='width:47pt'> </td>");
sb.Append(" <td class=xl4031508 width=63 style='width:47pt'> </td>");
sb.Append(" <td class=xl4131508 width=63 style='width:47pt'> </td>");
sb.Append(" <td class=xl4031508 width=141 style='width:106pt'> </td>");
sb.Append(" <td class=xl2631508 width=63 style='width:47pt'> </td>");
sb.Append(" <td class=xl4031508 width=63 style='width:47pt'> </td>");
sb.Append(" <td class=xl2631508 width=111 style='width:83pt'> </td>");
sb.Append(" </tr>");
#endregion
//表头
sb.Append(" <tr height=16 style='height:12.0pt'>");
sb.Append(" <td height=16 class=xl2431508 style='height:12.0pt;border-top:none'>发行机构</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none'>产品类型</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none'>产品名称</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>币种</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>产品风险收益类型</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>产品投资标的</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>募集期</td>");
sb.Append(" <td class=xl2531508 width=63 style='border-left:none;width:47pt'>期限</td>");
sb.Append(" <td class=xl2531508 width=63 style='border-left:none;width:47pt'>期限单位</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>预期年化<span style='display:none'>收益率</span></td>");
sb.Append(" <td class=xl2531508 width=141 style='border-left:none;width:106pt'>起点金额</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>额度</td>");
sb.Append(" <td class=xl2531508 width=63 style='border-left:none;width:47pt'>额度单位</td>");
sb.Append(" <td class=xl2531508 width=63 style='border-left:none;width:47pt'>管理费用</td>");
sb.Append(" <td class=xl2431508 style='border-left:none'>备注</td>");
sb.Append(" </tr>");
//数据
string constr = System.Configuration.ConfigurationSettings.AppSettings.Get("ConnectionString");
string sql = "select fxjg as 发行机构,InvestType as 产品类型,cpmc as 产品名称,bz as 币种,cptype as 产品风险收益类型,InvestType as 产品投资标的,rgqsr as 认购起始日期, rgjsr as 认购结束日,wtglqsearch as 期限,'天' as 期限单位, Yqnsyl as 预期年化收益率,Rgqsje as 认购起始金额,Rgdzje as 认购递增金额 ,glfy as 管理费用,cpsm as 产品说明 from QsqBankProduct where rgqsr>='2008-09-15' and rgqsr<'2008-09-22' order by fxjg";
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand cmd = new SqlCommand(sql,con);
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
con.Close();
for(int i = 0 ; i < dt.Rows.Count;i++)
{
string cptype = dt.Rows[i]["产品风险收益类型"].ToString();
if(cptype == "1")
cptype = "保本固定收益型";
else if(cptype == "2")
cptype = "保本浮动收益型";
else if(cptype == "3")
cptype = "非保本浮动收益型";
string Yqnsyl=dt.Rows[i]["预期年化收益率"].ToString();
if(Yqnsyl.IndexOf(".")!=-1 && Yqnsyl.Substring(Yqnsyl.IndexOf(".")).Length > 4)
Yqnsyl = Yqnsyl.Substring(0,Yqnsyl.IndexOf(".")+3);
string memo = dt.Rows[i]["产品说明"].ToString();
memo=Components.Formater.FormatDeleteHtml(memo);
string glfy = Components.Formater.FormatDeleteHtml(dt.Rows[i]["管理费用"].ToString());
sb.Append(" <tr height=25 style='height:25pt'>");
sb.Append(" <td height=17 class=xl2431508 style='height:12.75pt;border-top:none'>"+dt.Rows[i]["发行机构"]+"</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none'>"+dt.Rows[i]["产品类型"]+"</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none'>"+dt.Rows[i]["产品名称"]+"</td>");
sb.Append(" <td class=xl2531508 width=54 style='border-top:none;border-left:none;");
sb.Append(" width:41pt'>"+dt.Rows[i]["币种"]+"</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none'>"+cptype+"</td>");
sb.Append(" <td class=xl2531508 width=111 style='border-top:none;border-left:none;");
sb.Append(" width:83pt'>"+dt.Rows[i]["产品投资标的"]+"</td>");
sb.Append(" <td class=xl2731508 width=234 style='border-top:none;border-left:none;");
sb.Append(" width:176pt'>"+dt.Rows[i]["认购起始日期"]+"<font");
sb.Append(" class=\"font631508\">到</font>"+dt.Rows[i]["认购结束日"]+"</td>");
sb.Append(" <td class=xl2731508 width=63 style='border-top:none;border-left:none;");
sb.Append(" width:47pt' x:num>"+dt.Rows[i]["期限"]+"</td>");
sb.Append(" <td class=xl2531508 width=63 style='border-top:none;border-left:none;");
sb.Append(" width:47pt'>"+dt.Rows[i]["期限单位"]+"</td>");
sb.Append(" <td class=xl2831508 width=63 style='border-top:none;border-left:none;");
sb.Append(" width:47pt'>"+Yqnsyl+"</td>");
sb.Append(" <td class=xl2531508 width=141 style='border-top:none;border-left:none;");
sb.Append(" width:106pt'>起点 "+dt.Rows[i]["认购起始金额"]+",每"+dt.Rows[i]["认购递增金额"]+"递增</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none' x:num> </td>");
sb.Append(" <td class=xl2531508 width=63 style='border-top:none;border-left:none;");
sb.Append(" width:47pt'> </td>");
sb.Append(" <td class=xl2531508 width=63 style='border-left:none;width:47pt'>"+glfy+"</td>");
sb.Append(" <td class=xl2431508 style='border-top:none;border-left:none'> "+memo+"</td>");
sb.Append(" </tr>");
}
sb.Append(" <![if supportMisalignedColumns]>");
sb.Append(" <tr height=0 style='display:none'>");
sb.Append(" <td width=86 style='width:65pt'></td>");
sb.Append(" <td width=82 style='width:62pt'></td>");
sb.Append(" <td width=497 style='width:373pt'></td>");
sb.Append(" <td width=54 style='width:41pt'></td>");
sb.Append(" <td width=184 style='width:138pt'></td>");
sb.Append(" <td width=111 style='width:83pt'></td>");
sb.Append(" <td width=234 style='width:176pt'></td>");
sb.Append(" <td width=63 style='width:47pt'></td>");
sb.Append(" <td width=63 style='width:47pt'></td>");
sb.Append(" <td width=63 style='width:47pt'></td>");
sb.Append(" <td width=141 style='width:106pt'></td>");
sb.Append(" <td width=63 style='width:47pt'></td>");
sb.Append(" <td width=63 style='width:47pt'></td>");
sb.Append(" <td width=111 style='width:83pt'></td>");
sb.Append(" </tr>");
sb.Append(" <![endif]>");
sb.Append("</table>");
sb.Append("</div>");
sb.Append("<!----------------------------->");
sb.Append("<!--“从 EXCEL 发布网页”向导结束-->");
sb.Append("<!----------------------------->");
sb.Append("</body>");
return sb.ToString();
}
注意上面很多代码,并不是我一行行写的,这是很不明智的方法,HTML代码是从Excel是导出的,而一行行变成sb.Append形式是通过工具生成的。这工具不难,自己都可以写一个。注意上面//数据区域,是读取数据库,然后一行行循环。最后调用如下方式输出即可。
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//设置输出流为简体中文
Response.AppendHeader("Content-Disposition", "attachment;filename=cnqsq.xls");
Response.ContentType = "application/ms-excel";
EnableViewState = false;
Response.Write(data());
Response.End();
}
示例代码就不给出了,因为主要是方法。提供方法思路,相信实现起来并不难。