使用迭代循环将数据导出到 excel

Exporting data into excel using iterative loop

我正在对 maple 进行迭代计算,我想将每次迭代的结果数据(来自列矩阵)存储到 Excel 文件的特定列中。比如我的数据是

mydat||1:= <<11,12,13,14>>:

mydat||2:= <<21,22,23,24>>:

mydat||3:= <<31,32,33,34>>:

等等。 我正在尝试将它们中的每一个导出到一个 excel 文件中,并且我希望每个数据都存储在同一个 excel 文件的连续列中。例如,mydat||1 转到 A 列,mydat||2 转到 B 列,依此类推。我尝试了类似以下的方法。

with(ExcelTools):
for k from 1 to 3 do
Export(mydat||k, "data.xlsx", "Sheet1", "A:C"): #The problem is selecting the range.
end do:

我如何 select 此处的范围合适?还有其他方法可以按照我上面解释的方式导出数据并存储吗?

有几种方法可以做到这一点。最简单的当然是将所有数据放入一个数据结构中,然后将其导出。例如:

mydat1:= <<11,12,13,14>>:
mydat2:= <<21,22,23,24>>:
mydat3:= <<31,32,33,34>>:
mydata := Matrix( < mydat1 | mydat2 | mydat3 > );

这会将您的数据存储在一个矩阵中,其中 mydat1 是第一列,mydat2 是第二列,依此类推。对于这种形式的数据,ExcelTools:-Export or the more generic Export 命令都可以工作:

ExcelTools:-Export( data, "data.xlsx" );
Export( "data.xlsx", data );

既然您提到您正在进行迭代计算,您可能希望逐列写出结果。这是另一种方法,它不涉及创建另一个数据结构来存放结果。这确实假定 mydat"i" 中的数据已在循环之前创建。

for i to 3 do
    ExcelTools:-Export( cat(`mydat`,i), "data.xlsx", 1, ["A1","B1","C1"][i] );
end do; 

如果您想在构建文件时将数据写出到文件中,则只需在创建每个列后执行导出调用,即

ExcelTools:-Export( mydat1, "data.xlsx", 1, "A1" );

请注意,我删除了“||”人物。这些在 Maple 中用于 concatenation 并导致第二种方法出现一些问题。