【问题标题】:Exporting data into excel using iterative loop使用迭代循环将数据导出到excel
【发布时间】:2016-10-10 15:40:06
【问题描述】:

我正在对 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:

How do I select the range appropriately here?有没有其他方法可以按照我上面解释的方式导出数据并存储?

【问题讨论】:

    标签: export-to-excel maple


    【解决方案1】:

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

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

    这会将您的数据存储在一个矩阵中,其中 mydat1 是第一列,mydat2 是第二列,依此类推。使用这种形式的数据,ExcelTools:-Export 或更通用的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,并导致第二种方法出现一些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多