linux - 在 linux 中使用过滤器将 csv 转换为 excel 工作表

标签 linux excel csv

目前我正在 bash 脚本中从 sql 生成一个 csv 文件。然后我将它通过电子邮件发送给其他人。我被要求在通过电子邮件发送之前向文件添加自动过滤器(一个 excel 概念)。我希望能够在没有人工交互的情况下在 bash 脚本中执行此操作。到目前为止,谷歌搜索/stackoverflowing 我还没有找到一种方法来做到这一点。

最佳答案

CSV 无法应用自动筛选。 Excel 可读且能够应用自动筛选的最简单格式是 Excel 2003 SpreadsheetML。参见 https://msdn.microsoft.com/en-us/library/bb226687%28v=office.11%29.aspxhttps://msdn.microsoft.com/en-us/library/bb226693%28v=office.11%29.aspx

这也是纯文本,因此可以通过 bash 脚本创建。

AutoFilter 的简单示例:

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>

<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">

 <Worksheet ss:Name="Sheet1">

  <Table>
   <Row>
    <Cell><Data ss:Type="String">name</Data></Cell>
    <Cell><Data ss:Type="String">value</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">a</Data></Cell>
    <Cell><Data ss:Type="Number">1</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">a</Data></Cell>
    <Cell><Data ss:Type="Number">2</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">b</Data></Cell>
    <Cell><Data ss:Type="Number">1</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">b</Data></Cell>
    <Cell><Data ss:Type="Number">2</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">c</Data></Cell>
    <Cell><Data ss:Type="Number">1</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">c</Data></Cell>
    <Cell><Data ss:Type="Number">2</Data></Cell>
   </Row>
  </Table>

  <AutoFilter x:Range="R1C1:R7C2" xmlns="urn:schemas-microsoft-com:office:excel">
  </AutoFilter>

 </Worksheet>

</Workbook>

另一种可能性是,bash 脚本可以调用可以创建真正的 XLSXLSX 文件的软件。

关于linux - 在 linux 中使用过滤器将 csv 转换为 excel 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31539897/

相关文章:

vba - 如何对 A 列中具有相同值的一些数字求和?

vba - 如何将单元格范围转换为特定的数组维度

php - CSV换行问题

powershell - 为什么我的脚本无法运行?

c# - 系统启动时通过 .net 连接器连接 mysql 时出错

Linux - Kickstart 文件中的 "-y"参数选项

linux - node.js 和 serialport 无法列出任何端口

linux - 如何以表格格式获取此输出

excel - 制作宏以将数据输入到 Excel 电子表格中

linux - 将小于特定阈值的数字替换为零