问题标签 [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.
java - 如何安全地将 List 转换为 csv 字节数组?
最初我有以下代码:
尝试 1
在这里我发现有时字节数组没有完全写入。
我知道这是因为在externalHttpCall
调用期间流没有被刷新。
为了修复它,我写了以下内容:
尝试 2
它解决了这个问题,但是在这里我迷失了一个想法,即仅在externalHttpCall
. 所以我想出了以下解决方案:
尝试 3
我预计刷新会在流关闭之前发生。但根据我的实验,它不起作用。看起来这是因为刷新发生在流关闭之前但在 toByteArray 调用之后。
我该如何解决?
java - 存在标题时如何跳过csv文件中的标题
我正在使用 apache-common-csv 从 CSV 文件导入数据,我想跳过第一行的标题。重要的是,文件有时可以包含标题,但有时不包含。我有一个像下面这样的实现,但结果让我不满意,因为当文件没有标题时,第一行正在剪切。
java - 有没有办法使用 CSVParser 为 CSV 文件添加自定义分隔符?
目前,我正在使用本教程来了解如何读取 CSV 文件:https : //stackabuse.com/reading-and-writing-csvs-in-java-with-apache-commons-csv/ 它使用了 Apache 的 CSVParser 和 CSVFormat-公共-csv。
它可以很好地阅读,但不是我想要的方式。在我检查了它为什么不起作用的原因后发现我的 CSV 文件有分隔符“|” 而不是 "," 并且 CSVParser 无法读取它。有没有办法让我将 CSVParser 的分隔符更改为“|” 代替 ”,”?我真的很想使用这种方法,因为record.get("name of the map")
我正在做的这个项目对我有很大帮助,我不想手动更改 CSV 文件。
这是我当前的代码:
任何形式的帮助表示赞赏。
java - 什么情况下apache.commons.csv.CSVPrinter的构造函数会抛出IOException?
根据org.apache.commons.csv.CSVPrinter的文档,“如果无法打印可选标头 [在第二个参数中提供]”将引发 IOException。但是什么会导致可选标题无法打印?标题中的某些字符串是否以某种方式无效?
java - org.apache.commons.csv.CSVRecord.values() 具有默认访问权限
org.apache.commons.csv.CSVRecord.values()
给我记录值。但是,它具有从 commons-csv-1.5.jar 开始的默认访问说明符。
为了获取这些值,我创建了一个 org.apache.commons.csv.MyCSVRecord 类并使用它委托对 CSVRecord.values() 方法的调用。它是一个 hacky 解决方法。
作为 org.apache.commons.csv 的一部分,是否有任何现有的访问器类?我不明白为什么他们没有公开一个公共方法来获取值
java - 使用 Apache Camel 从另一个 API 使用 JSON 并将其写入 CSV
我是apache骆驼的新手。我想从另一个 api 的端点 url (http://localhost:8080/employeePayload) 使用 json 数据。我想使用这个 json 数据,使用 apache camel 将其解组到 POJO 并将其写入 CSV 文件。在我用 CSV 编写它之前,我需要为每个属性/列添加分隔符 |”。此外,我还必须向 CSV 文件添加标题和尾记录。标题由一些静态列名和一些运行时名称组成。标题列数将和json数据不一样。header有15列,json有110列)。
有没有办法在不使用 setter 方法的情况下将 json/pojo 绑定到 CSV 文件(因为我有 110 个属性,不能全部使用 setter)?
有人可以建议实现这一目标的最佳方法吗?
如果标题部分不清楚,请告诉我如何使用分隔符(|”)将 json 写入 CSV。
编辑:我可以从另一个 API 使用 json。但是,我不确定如何使用 apache camel 或任何其他库在不使用 getter 和 setter 的情况下使用分隔符将其写入 CSV。
java - Apache commons CSV 忽略 csv 文件中损坏或无效的记录并继续解析
我正在尝试解析一个几乎有效的 CSV 文件,其中包含 99.9% 正确和有效的数据。但是中途有几条记录无效(引号太多),例如
我的代码
如何解析 CSV,以便在遇到无效行/记录时跳过它并移至下一行?
java - Java:使用不带行号的 InputStream 和 Apache Commons CSV
这可能非常简单,但我无法找到执行此操作的选项。我正在尝试使用 Apache Commons CSV 读取文件以供以后验证。有问题的 CSV 作为输入流提交,它似乎在读取文件时向文件添加了一个附加列,其中包含行号。如果可能的话,我希望能够忽略它,因为标题行不包含数字,这会导致错误。InputStream 中是否已经有一个选项可以执行此操作,还是我必须设置某种后处理?
我正在使用的代码如下:
使用时withHeader()
,我最终遇到以下错误:
我不能简单地跳过它,因为我需要对标题行进行一些验证。
此外,这里是一个示例 CSV 文件:
编辑:另外,最终目标是验证以下内容:
- 有名为“Employee_ID”、“Department”和“Email”的列。为此,我想我需要删除 .withHeader()。
- 每行以逗号分隔。
- 没有空单元格值
java - 使用相同的转义和引号字符分隔 CSV
我有一个简单的 CSV 文件,如下所示:
这是使用 Apache CSV 读取它的尝试:
这不起作用,因为:
其他 CSV 工具(例如 Google 表格)可以很好地加载 CSV。
如果我使用另一个引号或转义字符,它会起作用,但遗憾的是客户的 CSV 已设置。
如何配置 Apache CSV 以允许相同的转义和引号字符?或者有什么方法可以修改流以动态替换引号字符(文件很大)?
java - 如何验证 CSV 文件的第一行是否与标题名称匹配?
我想处理这种结构的 CSV 文件:
但前提是第一行包含两个标题名称 - 否则抛出异常。
我目前使用Apache Common CSV的实现是:
问题是第一行的值可能与标题名称不同,并且文件仍在处理中。