- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于一个项目,我需要处理 CSV 文件,其中我不知道运行前的列。 CSV 文件是完全有效的,我只需要一遍又一遍地对几个不同的文件执行一个简单的任务。我确实需要分析列的值,这就是为什么我需要使用库来处理 CSV 文件的原因。为简单起见,假设我需要做一些简单的事情,比如将日期列附加到所有文件,无论它们有多少列。我想用 Super CSV 做到这一点,因为我也使用这个库来完成其他任务。
我正在努力解决的更多是概念问题。如果我事先不知道有多少列,我不确定如何处理这些文件。我不确定我应该如何定义映射任意 CSV 文件的 POJO,或者如果我不知道文件中将包含哪些列和多少列,我应该如何定义单元处理器。如何动态创建与列数匹配的 Cell 处理器?例如,我将如何根据 CSV 文件的 header 定义 POJO?
考虑我有两个 CSV 文件的情况:products.csv 和 address.csv。假设我想为两个文件附加一个包含今天日期的日期列,而不必编写两个不同的方法(例如 addDateColumnToProduct() 和 addDateColumnToAddress())来做同样的事情。
产品.csv:
name, description, price
"Apple", "red apple from Italy","2.5€"
"Orange", "orange from Spain","3€"
地址.csv:
firstname, lastname
"John", "Doe"
"Coole", "Piet"
如何根据 CSV 文件的 header 信息定义映射产品 CSV 的 POJO?细胞处理器有同样的问题吗?我怎么能定义一个非常简单的单元处理器,它基本上只有适量的构造函数参数,例如对于产品.csv
CellProcessor[] processor = new CellProcessor[] {
null,
null,
null
};
对于 address.csv:
CellProcessor[] processor = new CellProcessor[] {
null,
null
};
这可能吗?我在实现这一目标的道路上走错了吗?
编辑 1:我不是在寻找一种解决方案来处理在一个文件中具有可变列的 CSV 文件。我试图弄清楚是否有可能在运行时处理任意 CSV 文件,即我能否在运行时仅基于 CSV 文件中包含的 header 信息创建 POJO。事先不知道一个 csv 文件将有多少列。
解决方案根据@baba的回答和评论
private static void readWithCsvListReader() throws Exception {
ICsvListReader listReader = null;
try {
listReader = new CsvListReader(new FileReader(fileName), CsvPreference.TAB_PREFERENCE);
listReader.getHeader(true); // skip the header (can't be used with CsvListReader)
int amountOfColumns=listReader.length();
CellProcessor[] processor = new CellProcessor[amountOfColumns];
List<Object> customerList;
while( (customerList = listReader.read(processor)) != null ) {
System.out.println(String.format("lineNo=%s, rowNo=%s, customerList=%s", listReader.getLineNumber(),
listReader.getRowNumber(), customerList));
}
}
finally {
if( listReader != null ) {
listReader.close();
}
}
}
最佳答案
也许有点晚,但可能会有所帮助...
CellProcessor[] processors=new CellProcessor[properties.size()];
for(int i=0; i< properties.zise(); i++){
processors[i]=new Optional();
}
return processors;
关于java - 如何使用 Super CSV 处理列数未知的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21658579/
您如何计算Oracle表中的列数? 最佳答案 SELECT count(*) FROM user_tab_columns WHERE table_name = 'FOO' 应该给你foo中的列数。您可
我有一个宽度为 100% 的 div,里面有大约 10 张图片,所有图片的宽度和大小都不同。我希望能够无缝地将这些图像彼此 float ,我已经做到了,但它们不会在屏幕上拉伸(stretch),它们都
请看下面的代码,表格应该根据下面selected id选项中选择的输入更改行数,但只读取select id的第一个值,行数不会根据选择,你能指出我代码中的错误吗? http://jsfiddle.ne
我需要一个可以在 3×3 和 4×4 之间切换的动态 gridlayout。我可以 setRowCount 和 setColumnCount 从 3 到4 但不是从 4 到 3。它会显示以下问题: C
这里有一个没有真正答案的类似问题:CSS columns bug — 5 column count only showing 4 (with images) 我正在使用 column-count 来显
我正在尝试找到一种方法来填充摊销时间表,如下所示。 我目前使用的公式是: =IF($B2=$1:$1,$A2/$C2," ") 但是,这仅填充了第一个点(“起点”),我想做的是根据摊销期抵消这一点。期
我运行以下代码: import cv2 import numpy as np img_file='pokemon.jpg' img=cv2.imread(img_file) # print tota
我正在使用 asp.net 和 vb。这里我将数据绑定(bind)到Gridview。该数据集有 5 条记录,3 列,并且 gridview 显示 5 条记录,3 列。但 Gridview.colum
我已经为我的数据库苦苦挣扎了一段时间,几乎不可能找到我的老师。我的代码如下: INSERT INTO `database28`.`activity` VALUES ("Stefan", 1.1.2.2
我有一个执行 SQL 命令的 python 脚本,并尝试将所有数据插入表中。问题是我有一个条目列表,例如: "Bob", "bob@gmail.com" "John", "john@gmail.com
有谁知道这是否可以通过 bootstrap mixins 来完成。 列(父级数) 像什么Neat有。 在 Neat the Columns 中,mixins 的工作方式如下 @mixin span-c
我有这样的网址:http://xn----7sbabhi8cwaajmue5o.xn--p1ai/cars/search/by_man_and_model?by_manufacturer=115 你可
使用 Bootstrap 3,我正在寻找一种网格布局,其中列宽在任何屏幕分辨率下都是固定的(比如 200 像素),但它们的数量取决于屏幕宽度。 换句话说,我知道列的宽度,但我不知道每行有多少列,因为这
public class SmallestColumn2{ public static void main(String[] args){ int [][] smallest
如果我只有 9 列,但我想将它们分散到 100% 的 div。如何做到这一点? NSW VIC QLD WA SA TAS ACT N
我想在这里更改列的顺序: #container { position: relative; width: 600px; } #column-wrapper { -webkit-
1、df=DataFrame([{‘A':'11','B':'12'},{‘A':'111','B':'121'},{‘A':'1111','B':'1211'}])
我想将csv文件形式的数据导入表中。[使用Oracle SQL Developer]。我有数百个文件,每个文件有大约50列。 从SQL * Loader Wiki(http://www.orafaq.
好吧,这对我来说似乎很基础,尽管我找不到任何关于如何实现它的信息。 假设我有某种 QGridLayout 包含相同大小的小部件。现在我想根据布局大小更新其行数/列数。 因此,例如在相对较宽的屏幕上它看
我在 https://cwiki.apache.org/confluence/display/Hive/Home 中找不到任何记录在案的限制。 我的猜测是行数或列数没有限制。文件大小受文件系统限制。通
我是一名优秀的程序员,十分优秀!