使用TCOM以CSV格式创建选项卡

时间:2012-07-20 22:14:26

标签: excel csv tcl

我想在我使用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] 

1 个答案:

答案 0 :(得分:1)

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

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

  • 你应该在你的情况下得到这样的想法 - 在你的情况下 - 通过COM从Tcl脚本化Excel, - Tcl和COM在概念上只是薄的哑层,没有任何兴趣:所有繁重的工作都是由Excel完成的。这意味着,如果您遇到脚本化某些Excel操作的问题,想到Excel,而不是这些包装器。执行以下步骤通常有助于:

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

  • 考虑阅读http://whathaveyoutried.com - 看来你在询问之前没有进行太多研究。