人力资源应用html和css导出数据到excel简单便利
在应用中经常会遇到要从系统或数据库中导出数据帄面文件,一般是导出到txt,csv或excel。txt和csv一般用在系统间的数据交换,
而excel一般有较好的显示效果,可以按照一定的模板导出,导出就不用再排版了,使用简单,如果是使用做报
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
一般都导出excel文件。
但是使用com组件导出到Excel数据很慢,有另一种生成excel文件的方式就是通过html和css快速导出数据同时并能设置样式,使用这种方式有两个优点:1是速度快,2是不需安装excel支持。
实现就是通过html可以直接转换成excel,有两个要点:一是显示出表格线,像ASP.net中直接通过Gridview导出excel都没有显示出表格 二是设置数据格式。
一、显示出表格线:
在html的head标记中加入以下代码:
工作表标题
,,,,,
二、设置数据格式:
在head中加入css定义
,,,,,
在css中加入:mso-number-format定义数据格式,格式可以在excel中查看自定义格式,
具体可以参考一下:
mso-number-format:"0",,,,,NO,,,,,Decimals,,,,,
mso-number-format:"0\.000",,,,,3,,,,,Decimals,,,,,
mso-number-format:"\#\,\#\#0\.000",,,,,Comma,,,,,with,,,,,3,,,,,dec,,,,, mso-number-format:"mm\/dd\/yy",,,,,Date7,,,,,
mso-number-format:"mmmm\,,,,,d\,\,,,,,yyyy",,,,,Date9,,,,, mso-number-format:"m\/d\/yy\,,,,,h\:mm\,,,,,AM\/PM",,,,,D,,,,,-T,,,,,AMPM,,,,, mso-number-format:"Short,,,,,Date",,,,,01/03/1998,,,,, mso-number-format:"Medium,,,,,Date",,,,,01-mar-98,,,,, mso-number-format:"d\-mmm\-yyyy",,,,,01-mar-1998,,,,, mso-number-format:"Short,,,,,Time",,,,,5:16,,,,,
mso-number-format:"Medium,,,,,Time",,,,,5:16,,,,,am,,,,, mso-number-format:"Long,,,,,Time",,,,,5:16:21:00,,,,, mso-number-format:"Percent",,,,,Percent,,,,,-,,,,,two,,,,,decimals,,,,, mso-number-format:"0%",,,,,Percent,,,,,-,,,,,no,,,,,decimals,,,,, mso-number-format:"0\.E+00",,,,,Scientific,,,,,Notation,,,,, mso-number-format:"\@",,,,,Text,,,,,
mso-number-format:"\#\,,,,,???\/???",,,,,Fractions,,,,,-,,,,,up,,,,,to,,,,,3,,,,,digits,,,,,(312/94
3),,,,,
导出的excel可以直接通过excel打开,效果如下:
完整代码:
class Program
{
private const string HEADER = "" +
"
" +
"" +
"" ;
private const string STYLE="";
static void Main(string[] args)
{
using (StreamWriter writer = new StreamWriter(@"C:\1.xls", true, System.Text.Encoding.GetEncoding("gb2312"), 512))
{
writer.WriteLine(HEADER);
writer.WriteLine(STYLE);
writer.WriteLine("
");
writer.WriteLine ("ID | ");
writer.WriteLine ("Name | ");
writer.WriteLine ("Value | ");
writer.WriteLine ("Percent | ");
for (int row = 1; row < 50; row++)
{
writer.WriteLine("
");
writer.WriteLine("{0} | ", row);
writer.WriteLine("{0} | ", Guid.NewGuid ().ToString ());
writer.WriteLine("{0} | ", new Random().Next());
writer.WriteLine("{0} | ", new Random().NextDouble());
writer.WriteLine("
");
}
writer.WriteLine("
");
}
}
}