【问题标题】:Write a Csv file to a Matrix like structure [closed]将 Csv 文件写入类似矩阵的结构 [关闭]
【发布时间】:2013-10-18 15:23:12
【问题描述】:

我有一个这种格式的 csv 文件,其中第一列是重复次数,第二列是天数,第三列是执行时间。 这是表示:

        1   7   131
        2   7   71
        3   7   114
        [.....]
        9   7   338
        10  7   394
        11  7   437
        12  7   496
        1   31  171
        [.....]
        12  31  1894
        1   91  437
        [.....]
        10  91  4394
        [.....]

我想以这种方式处理这个文件来转换它,我可以使用 Java 或 Excel 宏

    7   31  91  183 366
1   131 171 437 866 1906
2   71  305 867 173 3460
3   114 493 136 261 5356
4   159 596 182 356 6916
5   210 800 249 468 8762
6   223 919 378 605 11296
7   270 107 354 644 12898
8   270 123 401 746 14265
9   338 145 398 903 15487
10  394 164 439 934 16971
11  437 174 507 104 18941
12  496 189 527 110 21378

其中 csv 文件的第一列仍然是文件的第一列,但不重复。然后必须将句点 [7,31,...,366] 作为第一行。 在这个矩阵中会放置所有元素吗?

如何使用 Java 或直接使用 Excel 中的宏? 谢谢

【问题讨论】:

  • 源代码在哪里,你试过什么。 SO 不是让其他人为您编写完整程序的资源。
  • 我没有任何源代码。我一直在做这件事。
  • 抽象:假设文件不是太大,将文件读入某种类型的内部数据结构。设计该数据结构,使其有助于对输出进行排序。或者,通过一个步骤从该结构中获取数据并以有用的方式对其进行排序。然后,输出它。

标签: java excel csv vba


【解决方案1】:

Map <Integer, Map <Integer, Integer>> 是列的第一个键,而内部键是天数呢?内部值将是执行时间。

填写完毕后,您可以执行以下操作打印它:

print map.get(1).getKeys()
for (Entry entry : map.getKeys()
     print entry.key()
     for (Integer innerValue : map.get(entry.key())
         print innerValue

应订购地图以使其正常工作...

【讨论】:

  • 谢谢,我最终决定直接在我的 Java 程序中而不是 Excel 中进行。
猜你喜欢
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多