0

我想在我使用 TCL 中的 TCOM 包创建的 .csv 文件中添加选项卡。以下是我用来创建第二个选项卡的代码。但我没有看到第二个选项卡。我只看到创建的第一个选项卡。

set application [::tcom::ref createobject "Excel.Application"]
set XlFileFormat(xlCSV) [expr 6]
set workbooks [$application Workbooks]
set workbook [$workbooks Add]                         
$application DisplayAlerts False
set worksheets [$workbook Worksheets]

set worksheet1 [$worksheets Item [expr 1]] 
set cells_worksheet1 [$worksheet1 Cells]

set worksheet2 [$worksheets Item [expr 2] 
set cells_worksheet2 [$worksheet2 Cells] 
4

1 回答 1

1

您在这里所说的“选项卡”实际上是一个工作表——一个仅存在于您正在使用的某些办公电子表格应用程序(例如 Excel)中的概念。当以原生文件格式保存/加载数据时,这些应用程序能够保留这种高级结构,但CSV更简单:它只是一个二维矩阵。由于这种简单性,CSV 格式只能用于存储在典型办公电子表格软件中维护的工作空间的单个工作表的内容。此外,CSV 不会存储高级内容,例如单元格引用或公式或单元格格式等 - 仅存储原始数据。

现在请仔细评估以下建议:

  • 你应该明白,在你的情况下——通过 Tcl 的 COM 编写 Excel 脚本——Tcl 和 COM 在概念上只是薄薄的哑层,没有任何兴趣:所有繁重的工作都由 Excel 完成。这意味着,如果您在编写某些 Excel 操作的脚本时遇到问题,请考虑 Excel,而不是这些包装器。执行以下步骤通常会有所帮助:

    1. 启动 Excel 并尝试手动执行您的预期操作 在您的特定情况下,这将使您免于提出这个问题,因为您会看到您无法将多页文档保存到 CSV 格式的文件中。
    2. 录制宏,然后打开宏编辑器并查看 Excel 为您编写的脚本(在 VBA 中)。将此代码转换为来自任何运行时的 COM 介导调用非常简单。这是使用 COM 编写此类软件脚本的常用方法。
  • 阅读文档!没有理由不阅读关于 CSV 是什么的介绍性材料,因为文档非常丰富。 您已经被告知CSV 比您认为的要简单得多;这应该敲响了一些钟声。

  • 考虑阅读http://whathaveyoutried.com ——看起来你在询问之前没有进行太多研究。
于 2012-07-21T11:21:20.450 回答