在應用中經常會遇到要從系統或資料庫中匯出資料一般檔案,一般是匯出到txt,csv或excel。txt和csv一般用在系統間的資料交換,
而excel一般有較好的顯示效果,可以按照一定的模板匯出,匯出就不用再排版了,使用簡單,如果是使用做報表一般都匯出excel檔案。
但是使用com組件匯出到Excel資料很慢,有另一種產生excel檔案的方式就是通過html和css快速匯出資料同時並能設定樣式,使用這種方式有兩個優點:1是速度快,2是不需安裝excel支援。
實現就是通過html可以直接轉換成excel,有兩個要點:一是顯示出表格線,像ASP.net中直接通過Gridview匯出excel都沒有顯示出表格
二是設定資料格式。
一、顯示出表格線:
在html的head標記中加入以下代碼:
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>工作表標題</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo />
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>
二、設定資料格式:
在head中加入css定義
<style type="text/css">
.spercent
{
background-color:#ffff99;
mso-number-format:0.00%;
}
</style>
在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/943)
匯出的excel可以直接通過excel開啟,效果如下:
完整代碼:
ALL Code