我正在对枫树进行迭代计算,我想将每次迭代的结果数据(以列矩阵形式存储)存储到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:
如何在此适当选择范围?是否有其他方法可以按照我上面解释的方式导出数据和存储?
答案 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,并在第二种方法中引起了一些问题。