在 Linux 中格式化 .xls 文件的 Perl 脚本

在 Linux 中格式化 .xls 文件的 Perl 脚本

我所拥有的只是一个linux命令(我不知道命令后面是什么,脚本或命令输出的格式是什么),所以我能做的就是拉取数据[以表格形式,带有不可见的列线],从linux中出来,并将其发送给人们进行审阅。

当我运行该命令时,生成的输出在控制台屏幕上以对齐的列进行了很好的格式化,即使我将其放入不同类型的文件扩展名中:.txt / .csv / .xls(它们在 Linux 终端中都很好)

那个命令 | mail -s '统计'[电子邮件受保护]

上图:将输出打印为电子邮件中的消息正文
下图:将输出重定向到文件并将其作为电子邮件中的附件发送出去

thatCommand > stat.xls
uuencode stat.xls table.xls | \mail -s“统计”[电子邮件受保护]

然后,我遇到了这个问题,执行第一个命令行后,我的消息正文中的表格如下所示

学生姓名 ID 科目 A(%) 科目 B(%)
Aaron Frank 7892 89 100
Benjamin Ayres 8892 78 90

我希望如何按列排列:

Student Name       ID   SubjectA(%) SubjectB(%)
Aaron Frank       7892      89         100
Benjamin Ayres    8892      78          90

所以我尝试了带有附件的第二条命令行。在邮件中收到这些不同类型的文件扩展名附件后,保存并在 Windows 中打开它们。 (在我的电脑中,csv和xls默认使用excel打开,txt使用记事本打开)

输出应该位于不同的列中(在导出之前它是 Linux 中的一个表),
但所有数据都在第一列中,在 Excel 应用程序中看起来很混乱。 [在记事本中看起来也很乱]

下图是我的最终目标,不同列中的数据值(对齐良好)

它应该是什么样子,我期望它是什么样子

现在看起来怎么样,数据都只在A列中 现在看起来怎么样

perl 脚本有帮助吗?这样我在收到附件时就可以获得格式良好的输出?我不介意,因为我仍然需要在 Linux 中的 Excel 文件末尾添加一些信息。 (尽管我还没有弄清楚如何做到这一点),但现在我主要关心的是如何格式化它:)

这是关联询问将进一步采取什么行动。

答案1

首先,Perl 本身可以发送电子邮件,请参阅此处的示例,更容易且不易出错。

无论如何,对于您的情况,HTML 电子邮件正文应该有效,例如

<table>
  <tbody>
    <tr>
      <td>Adam</td>
      <td>50</td>
    </tr>
  </tbody>
</table>

要发送 HTML 电子邮件,您需要设置content-type标头,请参阅此处的示例

相关内容