奇技淫巧 - 阅读主题
<<  <  1  >  >>

服务器端数据导出到MS Excel数据表

好(0) 差(0) 阅读(1510) 评论(0)
Wen 给 Wen 发消息 给 Wen 发email
poster face
等级:◆◆◆◆◇◇


使用asp、php等动态网页脚本可以轻松实现把服务器端的数据生成网页数据表,而客户端则可以方便地使用浏览器来查看生成的数据表。但有些时候需要把这些数据表保存为电子表格,例如MS Excel的格式,以方便二次处理(例如打印)或日后查看。在安装有IE浏览器及Excel的客户端电脑,有两种方便的方法可以实现网页数据表到Excel电子表格的转换:

  1. 在IE上拖动鼠标把数据表的数据都选中(俗称“拖黑”),接着复制(按组合键Ctrl+C或点选菜单 编辑->复制),然后在Excel中新建一空白电子表格,再粘贴(按组合键Ctrl+V或点选菜单 编辑->粘贴)。这样数据就到了Excel中,适当排版后保存即可。
  2. 在IE中右键点击数据表,在弹出的菜单中选择“导出到Microsoft Excel...”一项,Excel即会启动并获取网页上的数据表。排版后保存即可。

上述第二种方法有一定局限性:似乎不是所有版本的Excel都会在IE的右键菜单中添加“导出”菜单项,不过我知道XP及2003都会添加;各种原因可能导致IE的右键菜单中没有“导出”一项;如果IE中的当前页面要靠session验证,则用此法无法导出成功,因为Excel试图从服务器端获取数据时没有正确的session。

以上的两种方法是在客户端作 网页->Excel电子表格 的转换的。其实这个工作可以在服务器端完成,而且从 数据->Excel电子表格 的一步转换比 数据->网页数据表->Excel电子表格 的两次转换显然更快捷高效。

法一是利用Excel可以打开.cvs的逗号格式数据,而.cvs本质上是文本格式,故我们可以很容易编写 数据->.cvs 转换的脚本程序,这里就不啰嗦了。

法二则是利用Excel可以打开扩展名为.xls,但内容是HTML表格的文件。于是我们只需要输出一个.xls文档的头部标记,然后仍按 数据->网页 转换来编写脚本即可。下面举一用php实现的例子:

<?php
header("Content-Type: application/vnd.ms-excel");
// 下面这一行在实际使用时文件名excel.xls可以适当修改
header("Content-Disposition: attachment; filename=excel.xls");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN" xml:lang="zh-CN">
<head>
<!-- 下面这一行要设置好正确的字符编码 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>他</title>
<style type="text/css">
/* 修改CSS样式表可以改变最终Excel数据表的样式,但是Excel并不支持所有的CSS样式 */
table {
    border-collapse:collapse;
    border:2px solid #000;
}
th, td {
    border:1px solid #999;
}
th {
    font-weight:bold;
}
</style>
</head>

<body>
<table>
    <tr>
        <th>我</th>
        <th>ABCD</th>
        <td>你</td>
    </tr>
    <tr>
        <th>5678</th>
        <td colspan="2">123</td>
    </tr>
</table>
</body>
</html>

下图是用Firefox打开上例网页时的提示。

http://www.wensh.net/up/2/img/322_1.gif

打开此文件后则如下图所示:

http://www.wensh.net/up/2/img/322_2.gif

试验的系统是Excel 2002(即XP),对CSS的样式表识别并不是十分好,一般需要排版后再保存一次,同时也好让Excel把文件存为正确的.xls格式。

Share/Save/Bookmark
最后修改:Wen 于 2005-08-22 15:11:27

发表于 2005-08-22 15:04:33
奇技淫巧 - 阅读主题
<<  <  1  >  >>
发表评论
评论将以 过客 的名义发表
你的名字/昵称:
为减少垃圾评论,请准确回答问题:

注意:不超过 65535 字节,不支持HTML,支持NN Code

| | | 注册 | 忘记密码
分类浏览: 足迹 | 美食 | 开心 | 奇技淫巧 | 科学 | 音视 | 琐事 | WENSH事务 | 过客留言 | 前梦想国度 |
English categories: Footprints | Recipes | Fun | Tech | Science | Entertainment | Life | WENSH Affairs | Guests' Msgs |
| 链接 | 服务 | 留言 | 关于 NetNest |
Valid XHTML 1.0 | Valid CSS2 | WAI-A WCAG 1.0
LinkReferral | Multiply the traffic to your website... FREE
W3Csites.com Listed | Travel blogs | Travel | Top Blogs | blogarama.com
Directory of Travel Blogs | Travel Blogs - Blog Top Sites | Web Hosting Directory by Blog Flux | | Blog Ratings
Copyright 2005-2008 WEN'S Horizon [32/0.032]
Powered by NetNest 2.1.0.081019 © 2004-2008 NetNest Group