-1

任何人都有一个好的方法可以在定期安排的时间或事件发生后(例如,创建文件、加载表)自动批量创建自定义格式的 Excel 工作簿?

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

4

2 回答 2

2

其实这不是一个问题,而是一系列问题。我可以在这个问题中看到以下不同的问题(假设您将使用 perl 或 python 之类的脚本语言或类似的东西):

  • 必须执行的任务
    • 定期:使用cron
    • 在预定义的事件之后:这里不多说,这取决于你到底想要什么。
  • 必须从以下位置检索数据:
    • 从数据库:为您正在使用的特定数据库使用您的语言的绑定(例如:sqlite3 的 python 绑定
    • 从文件(什么是Unix文件?):根据文件的格式,您可以使用sed / awk或用您选择的脚本(或其他:P)语言编写解析器。
  • 必须将数据按摩到 Excel 工作簿中。好吧,我不太确定,您所说的“自定义格式”是什么意思,但创建 excel 工作簿的最简单方法确实是将其转储到.csv,但您可以更进一步,实际生成一个“伪 xls”,通过使用以下模板并将生成的文件另存为.xls(它实际上有效):
 <table>
 <tr>
   <td>field0</td>
   <td>field1</td>
   ..
   <td>fieldX</td>
 </tr>
 ... ad inf
 </table>
  • 结果文件必须是:
    • emailed:使用mail命令,通常指向系统上的默认邮件程序(exim、sendmail、postfix)
    • “传输”到网络服务器,-我在这里假设,这意味着“传输到另一台机器,以便可以通过 http(s) 访问它”。在这种情况下,您可以使用 ftp、sftp 或rsync(我最喜欢的)。

抱歉,非常不具体,但要从您的问题中推断出您到底想达到什么目的并不容易。

于 2010-01-02T08:27:38.567 回答
0

Excel 可以读取.csv(逗号分隔变量)或.tsv(制表符分隔变量)文件。将您的输出转储到 csv 中是“微不足道的”(只需确保您转义输入中的任何逗号或制表符),然后 excel 可以读取它。

如果您想生成一个 .xls 文件,您必须找到一个使用您选择的语言的库来实现对 .xls 文件的处理。例如,如果你使用 python,有一个完整的邮件列表专门讨论这样做

于 2010-01-02T07:54:33.360 回答