0

我目前正在使用 DelphiScript(不是 Delphi)在 Altium Designer 中提取 Pin List - Pin Names。DelphiScript 和 Delphi 有区别,我相信其中之一就是文件 I/O 组件。根据 Altium Docs for DelphiScript,只能生成文本文件和 csv 文件。在生成输出文件 .csv 时,保存就像抛出以逗号分隔的文本然后使用扩展名“.csv”保存一样简单。我现在的问题是如何在不导入和/或下载插件/扩展(如 eDocEngine VCL、LibXL、TQExport4Xlsx)的情况下创建 .xls 文件。尝试声明 TBook、TSheet、TgtXLSEngine 或其他方式来创建电子表格,但错误提示它是未声明的标识符。你们有什么想法吗?

报告编写器代码片段:


Procedure BeginReportPinList(AFilename: String);
Begin
    gv_FileName := AFilename + '.csv'; 
    AssignFile(gv_FileReport, gv_FileName);
    Rewrite(gv_FileReport);
End;

Procedure WriteReportDUT(AReport : String);
Begin
    WriteLn(gv_FileReport, Format('%s', [AReport]));
End;

Procedure EndReport(Dummy : Boolean);
Begin
    CloseFile(gv_FileReport);
End;


调用上述过程的字符串解析器代码片段:

if dutlistX.Count = 1 then
       Begin

            PinFilename := copy(gv_Board.FileName, 1, Pos('-05', gv_Board.FileName)-1) + '-14';
            BeginReportPinList(PinFilename);

            For I := 0 To finalreport.Count - 1 Do
                Begin
                     WriteReportDUT(finalreport[I]);
                End;

            EndReport(0);
      End;
4

1 回答 1

0

正如@Ken White 在评论中提到的,没有第三方组件很难做到这一点。据我所知,XSL 文件具有复合文件二进制格式的结构。这种类型的文件由您可以操作的块和流组成。我已经使用这个第三方软件来解析这种文件类型(实际上是 SchDoc,但不是 XLS),检查这个问题。如果您在 .NET 平台上运行 Altium,OpenMCDF 可以发挥作用,例如 16 版本。此外,您可以使用基于 CFB 的文件格式规范。

很明显,Altium 的一些其他文件类型正在使用该 CFB 文件格式,因此了解 OpenMCDF 可能很有用。我相信 XLS 可以通过比这个更方便的方式创建,但了解如何处理 XLS 或 SchDoc 等数据容器是很有用的。

于 2016-08-26T11:39:30.730 回答