问题标签 [apache-commons-csv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
679 浏览

csv - 在 groovy 中使用异常容错解析 CSV

我一直在尝试在 groovy 中解析 csv 文件,目前使用库 org.apache.commons.csv 2.4。我的要求是 csv 单元格中有无效的数据值,例如无效字符,而不是在第一个无效行/单元格上抛出异常,我想收集这些异常并在 csv 文件中不断迭代直到结束,然后我将获得此 csv 文件具有的无效数据的完整列表。

出于这个目的,我尝试了多种使用这个 apache lib 的方法,但不幸的是,只要它使用 CSVParser.getNextRecord() 进行迭代,迭代器就会中止。

输入代码,如下所示:

那么,还有什么我应该在这个库中挖掘的吗?或者有人可以指出我另一个更可行的解决方案吗?非常感谢大家!

更新:示例 CSV

第二个数据行包含无效字符",导致解析器抛出异常

0 投票
1 回答
3623 浏览

java - 如何使用 FileUtils 从 JUnit 测试中的资源目录读取 csv 文件

在标准 maven 项目的资源目录中有一个 csv 文件,如下所示:

水果.csv

使用以下库

水果(标准 POJO)

CsvFileReader

CsvFileReaderTest(JUnit 4 测试用例):

当我在 Eclipse 中运行 JUnit 测试用例时:

似乎在读取文件,但问题是文件名太长了?

我究竟做错了什么?

0 投票
1 回答
3899 浏览

java - 为什么 Apache Commons CSVParser.getHeaderMap() 总是返回 null?

使用 Apache Commons CSV 阅读以下 TSV 片段时:

这是我的代码:

但是我总是得到一个NullPointerException说明parsed.getHeaderMap() == null

根据 API ( https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/CSVParser.html ),该方法可能会返回在列中迭代的标题映射的副本命令。

我的代码或 CSV 文件有问题吗?图书馆失败了吗?

0 投票
1 回答
957 浏览

csv - 获取 Apache CSV 中的原始记录

如何在使用Apache CSV时获取原始记录,即 csv 文件中的行作为字符串

0 投票
0 回答
221 浏览

java - 将标题行索引传递给 Apache Commons CSV

Apache Commons CSV 提供了使用withHeaders(). 但是有没有办法将特定的行索引作为标题行传递给 Apache Commons。我浏览了文档,但没有找到任何东西。

0 投票
5 回答
18722 浏览

java - 使用 apache commons 获取 CSV 文件头

我一直在寻找过去 2 小时来解决我的问题的方法。我正在尝试使用Apache commons读取 CSV 文件,我能够读取整个文件,但我的问题是如何仅提取数组中 CSV 的标题?

0 投票
3 回答
27658 浏览

java - Java - 使用 Apache.commons.csv 编写 CSV 文件

在 Java 中使用 apache.commons.csv 库。我正在使用以下代码从网页读取 CSV 文件:

但是,我在这个库中找不到一种方法可以轻松地将这个文件写入我的计算机,以便稍后打开它并从中读取。

我试过这段代码来保存文件。

但是,当我尝试使用此代码读取文件时,什么也没有打印出来:

这只会打印出“打印:”如果我添加

它给出了一个

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:1

当我用记事本打开保存的 CSV 文件时,有一个空行,然后:

2016-03-04,714.98999,716.48999,706.02002,710.890015,1967900,710.890015," ",2016-03-03,718.679993,719.450012,706.02002,712.419983,1956800,712.419983," ",2016-03-02,719.00,720.00,712.00,718.849976, 1627800,718.849976,”

0 投票
2 回答
1226 浏览

java - 阿帕奇公共 csv

我无法理解 apache commons csv 库的核心。当我想通过 apache-commons-csv 从 csv 文件中按标题名称获取列时,您能否建议我应该使用的方法?例如,我有这样的 csv 文件:

我想获取数组:double[] delays, double[] compTime, double[] commTime 由 csv 中的值组成。

0 投票
3 回答
4312 浏览

java - 由于保存之前/之后的 CSV 差异导致解析错误(Java w/Apache Commons CSV)

我有一个 37 列的 CSV 文件,我正在使用 Apache Commons CSV 1.2 在 Java 中解析它。我的设置代码如下:

我的问题是,当我将要处理的 CSV 复制到目标目录并运行解析程序时,出现以下错误:

但是,如果我将文件复制到我的目标目录,打开并保存它,然后再次尝试该程序,它可以工作。打开并保存 CSV 会在最后添加所需的逗号,这样我的程序就不会因为没有足够的标题来读取而感到沮丧。

对于上下文,这是保存之前/之后的示例行:

之前(失败):“数据”、“数据”、“数据”、“数据”

之后(工作):“数据”,“数据”,,,,“数据”,,“数据”,,,,,,

所以我的问题是:为什么打开并保存 CSV 格式会发生变化?我没有更改任何值或编码,保存时 MS-DOS 或常规 .csv 格式的行为相同。另外,我在测试中使用 Excel 来复制/打开/保存。

我需要使用一些编码或格式设置吗?我可以以编程方式解决这个问题吗?

提前致谢!

编辑#1:

对于其他上下文,当我第一次查看原始文件中的空行时,它只有新行 ^M 字符,如下所示:

在 Excel 中打开并保存后,我的 37 个空字段看起来像这样:

这是 Windows 编码差异吗?

0 投票
1 回答
618 浏览

java - Apache Commons CSV 中的意外引用

在使用具有以下 maven 依赖项的 Apache CSV 时。我得到了意想不到的结果。

简单的代码无法按预期为我工作。谁能告诉这里有什么问题?

实际输出:"-10",10

预期输出:-10,10

实际输出:10,-10

预期输出:10,-10

实际输出:".10",-10

预期输出:.10,-10

实际输出:"+10",-10

预期输出:+10,-10