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

时间:2016-10-10 15:40:07

标签: export-to-excel 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:

如何在此适当选择范围?是否有其他方法可以按照我上面解释的方式导出数据和存储?

1 个答案:

答案 0 :(得分:3)

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

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

这将您的数据存储在Matrix中,其中mydat1是第一列,mydat2是第二列,等等。使用此表单中的数据,ExcelTools:-Export或更通用的Export命令将起作用:

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

既然你提到你正在进行迭代计算,你可能想要逐列写出结果。这是另一种不涉及创建另一个数据结构来容纳结果的方法。这确实假设mydat中的数据&#34; i&#34;已在循环之前创建。

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" );

请注意,我删除了&#34; ||&#34;字符。这些在Maple中用于concatenation,并在第二种方法中引起了一些问题。