?
最近項(xiàng)目需要將網(wǎng)頁(yè)上的數(shù)據(jù)導(dǎo)出為
excel
,雖然處理方法簡(jiǎn)單,但是我這做了些不同情況的測(cè)試,以及我使用的是
PHP
,并非
JSP
。原理是一樣的,將頭部設(shè)置成
excel
對(duì)應(yīng)的格式。所以我還是認(rèn)為應(yīng)該做個(gè)總結(jié)記錄下。希望其他同行遇到同樣的需求的時(shí)候我這篇文章能起到一點(diǎn)點(diǎn)微弱的正面作用。
?
php
:
<?
php
???
header
(
"Content-Type:application/vnd.ms-execl"
);
header
(
"Content-Disposition:filename=test.xls"
);
?>
對(duì)應(yīng)的
JSP
:
<%
response.setHeader("Content-disposition","inline; filename=test1.xls");
?%>
其中,inline 線上瀏覽方式,對(duì)應(yīng) attachment 下載保存。當(dāng)然不寫,他也會(huì)詢問(wèn)你的。
我的較完整的
php
測(cè)試代碼
1
:
<?
php
???
header
(
"Content-Type:application/vnd.ms-execl"
);
???
header
(
"Content-Disposition:filename=test.xls"
);
??? echo "test1\t";
??? echo "test1\t";
??? echo "test1\t";
??? echo "test1\t";
??? echo "test1\n";
??? echo "test2\t";
??? echo "test2\t";
??? echo "test2\t";
??? echo "test2\t";
??? echo "test2\n";
?>
測(cè)試打開(kāi)網(wǎng)頁(yè)后,提示保存或者打開(kāi)
excel
文件。結(jié)果也顯示是正確的。代碼中關(guān)于
’
\t’,
其實(shí)你取數(shù)據(jù)輪到下一列就用‘
\t
’,而遇到下一行就用‘
\n
’。簡(jiǎn)單吧。而我隨后進(jìn)行了
table
的原始測(cè)試,也就是頁(yè)面本來(lái)就有表格的那種。比如:
php
測(cè)試代碼
2
:
<?
php
???
header
(
"Content-Type:application/vnd.ms-execl"
);
???
header
(
"Content-Disposition:filename=test.xls"
);
?>
<
table
cellpadding
="
1
"
cellspacing
="
1
"
border
="
1
"
>
???
<
tr
>
???
<
td
width
="
30
"
>
test1
</
td
>
???
<
td
width
="
60
"
>
test1
</
td
>
???
<
td
width
="
30
"
>
test1
</
td
>
???
<
td
width
="
100
"
>
test1
</
td
>
???
<
td
width
="
80
"
>
test1
</
td
>
???
</
tr
>
???
???
<
tr
>
???
<
td
>
test2
</
td
>
???
<
td
>
test1
</
td
>
???
<
td
>
test1
</
td
>
???
<
td
>
test1
</
td
>
???
<
td
>
test1
</
td
>
???
</
tr
>
</
table
>
?
測(cè)試結(jié)果順利導(dǎo)出頁(yè)面
table
為
excel
。
說(shuō)明:
1.???
代碼指定的寬度是起了作用。如果不制定,當(dāng)然就自由伸縮,以放得下為標(biāo)準(zhǔn)。
2.??????
剛開(kāi)始表格
cellpadding
="
1
"
cellspacing
="
1
"
border
="
1
"
這些屬性我都沒(méi)有設(shè)置,導(dǎo)的
excel
是沒(méi)有單元格邊框的。
3.
還有千萬(wàn)別在
HTML
里搞那
7788
的頭聲明(因?yàn)檫@里指定了,別沖突了哦)。小心出錯(cuò)。
o(
∩
_
∩
)o…
4. 當(dāng)我們要導(dǎo)出word時(shí)候呢?
你肯定已經(jīng)知道方法了。對(duì)的,我們只需要把contentType改成"application/msword"以及filename的副檔名改成.doc就可以了。這個(gè)我沒(méi)有測(cè)試。
posted on 2007-08-09 21:36
-274°C 閱讀(3508)
評(píng)論(1) 編輯 收藏 所屬分類:
PHP