2010-01-02 67 views
-1

任何人都有一个很好的方法来自动化定期格式化的Excel工作簿批量创建或在事件发生后(例如,创建文件,表格加载)?“熄灯”自动计划批量创建Excel工作簿?

为了让事情更有趣,让我们进一步假设源数据位于关系数据库或Unix文件中,并且结果需要通过电子邮件发送或传输到Unix Web服务器。谢谢!

+0

什么语言?什么OS?输入数据是什么格式? – 2010-01-02 07:53:17

+0

你使用它的目的是什么?你只是想能够在Excel中打开文件? – 2010-01-02 08:08:35

回答

0

Excel可以读取.csv(逗号分隔变量)或.tsv(制表符分隔变量)文件。将输出转储到csv是很“简单的”(只要确保您在输入中跳过任何逗号或制表符),然后excel就可以读取它。

如果你想产生一个.xls文件,你必须找到一个你选择的语言库来实现处理.xls文件。例如,如果你使用的是python,有an entire mailing list专门讨论这样做

+0

但他们不会是“自定义格式的Excel工作簿” – pavium 2010-01-02 07:59:14

+0

是真的。但不知道实际的目的是什么,很难给出一个好的答案。 – 2010-01-02 08:09:29

2

事实上,这不是一个问题,而是一系列问题。我可以看到这个里面以下不同问题(假设你要使用脚本语言如Perl或Python或类似的东西):

  • 任务必须进行
    • 在规定的时间间隔:使用cron
    • 经过预定义的事件:在这里不多说了,这取决于你想要什么。
  • 数据必须从检索:
    • 从数据库中:使用你的语言绑定您所使用的特定数据库(例如:python bindings for sqlite3)从文件
    • (是什么a Unix file:):根据文件的格式,您可以通过使用sed/awk或在您选择的脚本语言(或其他:P)语言中编写解析器。
  • 该数据必须是按摩成excel工作簿。那么,我不太确定,你的意思是“自定义格式化”,但创建excel工作簿的最简单方法实际上只是将它转储到.csv,但你可以进一步实际生成“伪xls”通过使用下面的模板并保存得到的文件.xls(它的实际工作):
<table> 
<tr> 
    <td>field0</td> 
    <td>field1</td> 
    .. 
    <td>fieldX</td> 
</tr> 
... ad inf 
</table> 
  • 生成的文件必须是:
    • 电子邮件:使用mail命令,它通常指向系统上的默认邮件程序(exim,sendmail,postfix)
    • “传输”到Web服务器, - 我在这里假设,这意味着“传输到另一台机器,以便它可以通过http访问“。在这种情况下,您可以使用ftp,sftp或rsync(我的最爱)。

对不起,为非特异性至极,但它是不容易推断究竟你想从你的问题来实现。

+0

你可以用html和excel(application/vnd.ms-excel)也做很多事情xml(http://stackoverflow.com/questions/ 1742640/exporting-excel-the-simple-way-but-not-csv)另请参阅http://stackoverflow.com/questions/150339/generating-an-excel-file-in-asp-net – Fionnuala 2010-01-02 12:00:35

+0

是的,我意识到这样一个事实,即生成'.xls'文件有很多种方法,但由于提问者不太确定他想要什么,我决定采用最直接的“快速和肮脏”的方式。 – shylent 2010-01-02 12:15:55

+0

@shylent道歉,我已经投票了你的答案,并添加了OP的笔记,我应该说清楚。 – Fionnuala 2010-01-02 14:16:46

相关问题