使用HTML,CSS快速匯出資料到Excel

來源:互聯網
上載者:User

     在應用中經常會遇到要從系統或資料庫中匯出資料一般檔案,一般是匯出到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
相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.