【问题标题】:Apache POI Excel creation with data along X,Y,Z axis linesApache POI Excel 创建沿 X、Y、Z 轴线的数据
【发布时间】:2013-12-09 16:09:30
【问题描述】:

我正在使用 XSSF 创建一个 Excel。

此 excel 将包含前 3 行中的数据(将其想象为 x 轴)。 我还在左手边的 2 列中填写了数据(将其想象为 Y 轴)。

现在,我必须在工作表上添加一个标志,指示 x 和 y 轴值之间的匹配(想象 z 轴)。

例如如果我在 x 轴上有值:x1(单元格:D1),x2,x3,x4 等...在 Y 轴上:Y1,Y2,Y3(单元格:12C))等。

如果 x1 == Y3,我用“X”标记公共单元格 (D12)。

我在 Linkedhashmap 中有所有这些数据。一个linkedhashmap 中的X 轴数据、另一个linkedhashmap 中的y 轴和i 也有信息,其中x 值等于另一个linkedhashamp 中的y 值。所以我必须遍历这些哈希图并创建一个 excel 表。

我的问题:我有这个匹配的信息哈希图,其中列(x 轴)数据作为键,行数据作为值。所以,我必须明智地遍历工作表列。 (X1->Y3,Y100,Y123,X2->Y2,Y79,Y500)。

这是好方法还是我应该反转hasmap中的键和值,考虑性能?

我在 x 轴上的值有限(范围:100-5000)(将它们保留在 x 轴上的原因),而我有 100 万行/值(在 Y 轴上)。

欢迎您提出任何其他建议,请提出建议。

非常感谢您的帮助。

P.S. 我有使用 excel 的经验,也有一些使用 POI 的经验,我知道基础知识,我以前创建过 excel 表,但数据有限,而且总是按行排列而不是像这样的多维。

【问题讨论】:

    标签: java performance servlets apache-poi


    【解决方案1】:

    我想我会用

    cell.setCellFormula(formula_str);
    

    使用类似的公式

    =if(a1=b3, "", "MISMATCH") 
    

    或者它应该可以工作。这样,您就可以让 Excel 完成工作,而不必在 Java 代码中制作哈希图和各种复杂的东西。同样,当用户更新 Excel 时,它会为他们更新。如果您的计算在更改 Excel 中的数据时没有更新,用户将不会喜欢它。

    cell.setCellFormula("IF(A1=B3, \"\", \"MISMATCH\")");
    

    要创建您的论坛列或行,您只需要一个循环将数字从 A1​​、B3 更改为您遍历并添加公式单元格的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 2020-10-04
      • 1970-01-01
      • 2013-02-26
      相关资源
      最近更新 更多