在Altium DelphiScript中创建excel工作簿/工作表而无需安装插件

时间:2016-08-23 01:27:45

标签: excel csv delphi altium-designer delphiscript

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

Report Writer Code Snippet:

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;

调用上述程序的String Parser Code Snippet:

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;

1 个答案:

答案 0 :(得分:0)

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

非常值得注意的是,Altium的其他一些文件类型正在使用该CFB文件格式,因此了解OpenMCDF可能很有用。我相信XLS可以以非常方便的方式创建,但是知道如何处理这些数据容器,如XLS或SchDoc等等。