作者cjoe (月底光仙子 §(─ ─)§)
看板Web_Design
標題[心得] 資料匯出成excel,欄位可以文字型態顯示
時間Fri Apr 3 09:03:50 2009
不確定大家是不是早就都會了...如果有更好的方法,請各位大大分享吧@@
首先,這個是一個偽excel檔! 我的目的是希望他可以被excel執行,並不要自動
格式化我們的欄位資料。
=================================================================
檔名可以直接用 『xxxx.xls』
優點:excel不會太聰明幫user自動格式化顯示欄位資料
09123456
09654321
像這樣的欄位皆可以正確顯示,而不會被去 "0" 顯示
缺點:不像csv檔一樣,以『,』分割欄位,不利日後將資料匯入其他系統
(但是應該可以透過excel再一次的把資料轉成csv)
下面我會把範例給貼上來,而我們主要要操作的部份是<body>裡面的表格而已
其餘的部份,直接copy來用就可以。其中最主要的是<td class=x125>,加上這個
class才會有效果;不加的話,該欄位就會以excel自型判斷的結果呈現。
原始碼直接貼上來有點亂...
可以參考下列網址這個檔案
http://fs.mis.kuas.edu.tw/~m1097345123/excel.xls
==================================================================
<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="
http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" />
<title>無標題文件</title>
<style>
<!--table
@page
{mso-header-data:"&CMultiplication Table\000ADate\: &D\000APage &P";
mso-page-orientation:landscape;}
br
{mso-data-placement:same-cell;}
-->
.xl24
{mso-style-parent:style0;
mso-number-format:"\[TWN\]\[$-404\]y\0022\/\0022m\0022\/\0022d\0022\0022\;\@";}
.xl25
{mso-style-parent:style0;
mso-number-format:"\@";}
</style>
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>第一頁</x:Name>
<x:WorksheetSource Id="1"/>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo/>
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>
<table border="1" cellspacing="0" cellpadding="0"
style="font-size:15px;font-family:'新細明體
';border-collapse:collapse;"><tr><td bgcolor="#505050" colspan="5"
align="center"><font size=4 color="#FFFFFF"><B>陳大德 導生聚報表
</B></font></td></tr><tr><td bgcolor="#CCCCCC">主題</td><td bgcolor="#CCCCCC">
導生聚日期時間</td><td bgcolor="#CCCCCC">地點</td><td bgcolor="#CCCCCC">內容
</td><td bgcolor="#CCCCCC">出席狀況</td></tr><tr><td class=xl25>開學前夕聚餐
</td>
<td class=xl25>2009-03-31 18:30</td>
<td class=xl25>我家牛排</td>
<td class=xl25>請各位提早到現場,千萬不要遲到<br>====================<br>特製牛
排130<br>特製豬排120<br>菲力牛排200<br>丁骨230</td>
<td class=xl25>A君<font color="#FF0000">(缺席)</font><BR />B君<font
color="#FF0000">(缺席)</font><BR />C君<font color="#FF0000">(缺席)</font><BR
/></td></tr>
<tr><td class=xl25>期初聚餐</td>
<td class=xl25>2009-04-01 12:30</td>
<td class=xl25>民雄鵝肉</td>
<td class=xl25>可攜帶家眷</td>
<td class=xl25>A君<font color="#FF0000">(缺席)</font><BR />B君<font
color="#FF0000">(缺席)</font><BR /></td></tr>
<tr><td class=xl25>期中聚餐</td>
<td class=xl25>2009-05-15 12:0</td>
<td class=xl25>千葉火鍋</td>
<td class=xl25>每人199元</td>
<td class=xl25>A君<font color="#FF0000">(缺席)</font><BR />B君<font
color="#FF0000">(缺席)</font><BR />C君<font color="#FF0000">(缺席)</font><BR
/></td></tr>
<tr><td class=xl25>期末聚餐</td>
<td class=xl25>2009-06-30 12:0</td>
<td class=xl25>野宴燒烤</td>
<td class=xl25>每人399</td>
<td class=xl25>B君<font color="#FF0000">(缺席)</font><BR />C君<font
color="#FF0000">(缺席)</font><BR /></td></tr>
<tr><td class=xl25>母親節聚會</td>
<td class=xl25>2009-05-10 12:30</td>
<td class=xl25>陶板屋</td>
<td class=xl25>陶板屋</td>
<td class=xl25>A君<font color="#FF0000">(缺席)</font><BR />B君<font
color="#FF0000">(缺席)</font><BR />C君<font color="#FF0000">(缺席)</font><BR
/></td></tr>
<tr><td class=xl25>清民節聚會</td>
<td class=xl25>2009-04-05 12:0</td>
<td class=xl25>學校餐廳</td>
<td class=xl25>學校餐廳</td>
<td class=xl25>A君<font color="#FF0000">(缺席)</font><BR />B君<font
color="#FF0000">(缺席)</font><BR />C君<font color="#FF0000">(缺席)</font><BR
/></td></tr>
<tr><td class=xl25>慶生</td>
<td class=xl25>2009-03-31 18:0</td>
<td class=xl25>校內餐廳</td>
<td class=xl25>校內餐廳</td>
<td class=xl25>B君<BR />A君<font color="#FF0000">(缺席)</font><BR />C君<BR
/></td></tr>
</table></body></html>
>"< 如果大家都不會,請"推"這一篇一下吧
給我優文 給我優文 (>////<) b
--
身為一個Web Designer,當文書處理人員說
『Hey,cjoe 我已經把文件用word處理好了,麻煩依格式幫我轉到網頁上公告』
小cjoe知道....
重新排版的工作來了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.82.105
※ 編輯: cjoe 來自: 118.171.82.105 (04/03 09:08)
推 chph:我想你誤會了, 這並不是excel格式, 很明顯的這是html 04/03 10:07
→ chph:只是Excel有支援而已 04/03 10:07
→ cjoe:我的目標是就讓他可以正確直接在excel下顯示 04/03 10:39
→ cjoe:可能我標題沒有正確寫清楚,讓您誤會了 04/03 10:39
→ cjoe:另外,應該也不太可能真的100%用成execl格式,還是說微軟已經 04/03 10:40
→ cjoe:公佈execl的檔案結構or提供原件給非微軟自家產品使用 04/03 10:41
※ 編輯: cjoe 來自: 118.171.82.105 (04/03 10:43)
推 Kelunyang:這大概不行,沒有型別宣告Excel會自己補 04/03 11:02
→ Kelunyang:你如果不想看到很醜的HTML,那請使用者存成Excel-XML吧 04/03 11:03
→ Kelunyang:直接用Ajax操作XML就不用管CSS了,DTD你也不會也興趣改 04/03 11:03
→ Kelunyang:怎麼操作Excel XML看一下小弟在「聰明的下拉式選單」裡 04/03 11:04
→ Kelunyang:的推文吧 04/03 11:04
→ Kelunyang:XML就是資料,在一般的電腦哩,該檔案點兩下Excel也開啟 04/03 11:05
推 GALINE:我認為這是個實用的work around,相容性也還過得去。 04/03 12:22
→ GALINE:Excel的檔案格式已經公開,聽說頗艱澀。另,回應簽名檔,請 04/03 12:23
→ GALINE:善用另存為html的功能…至少對IE的相容性很夠[汗] 04/03 12:24
推 Kelunyang:我不建議改存成HTML,Excel開放的檔案格式就是2007的 04/03 12:30
→ Kelunyang:Open標準,但是那是一個ZIP,用JS操作打不開 04/03 12:30
→ Kelunyang:可是格式基本上是類似的,所以存成ExcelXML就夠了 04/03 12:30
推 Kelunyang:當然要是你能夠使用ASP或其他COM+從件,從後端強制開啟 04/03 12:33
→ Kelunyang:Excel原始檔也是一個解法,但是相容性不高 04/03 12:33
→ Kelunyang:因誤你的Excel檔案是沒有圖的,所以乾脆存成ExcelXML吧 04/03 12:34
→ Kelunyang:Excel的檔案結構只有Office 2007的OpenXML,舊版可以裝 04/03 12:37
→ Kelunyang:套件相容,但是會相容的原因就是因為舊版原本就支援 04/03 12:37
→ Kelunyang:某一種XML格式,至於舊版的就不是開放的了 04/03 12:38
→ cjoe:請問k大,您說這樣不行,沒有的型別宣告excel會自己補 04/03 17:29
→ cjoe:那會...造成什麼結果呢? 04/03 17:30
→ cjoe:另外,請問XML的方式,可以做到欄位合併嗎? 04/03 17:31
→ cjoe:如果要USER另外轉存檔案、安裝軟體,會不會更不方便呢? 04/03 17:31
→ cjoe:>///<謝謝大家提供意見 04/03 17:32
推 Kelunyang:已經回應再小弟下一篇文章囉 04/03 23:29