【发布时间】:2018-04-12 13:24:09
【问题描述】:
我需要将 csv 文件中的数据导入到 selenium 中的 excel 中。
拥有格式如下的 csv 文件:
PERIOD|EMPLID|EMPL_RCD|HOME HOST|NAME|FIRST_NAME|LAST_NAME|FTE|EMPL_STATUS
5/04/2018|78787|0|Home|mandon|steven|jabobs|1|A
6/04/2018|78789|0|Home|stacy|carvin|tans|1|A
11/04/2018|17892|0|Home|neel|harvis|bammer|1|A
需要将这些数据保存在 excel 中,如图所示:
编辑我尝试创建 Excel 文件
我正在使用以下代码从带有管道符号分隔符的 csv 文件生成 (.xls) 文件,如图所示
但在阅读第一行后给出java.lang.NullPointerException。
public class DelimitedToXls {
@SuppressWarnings("deprecation")
public static void main(String args[]) throws IOException {
ArrayList<ArrayList<String>> allRowAndColData = null;
ArrayList<String> oneRowData = null;
String fName = "C:\\input.csv";
String currentLine;
FileInputStream fis = new FileInputStream(fName);
DataInputStream myInput = new DataInputStream(fis);
int i = 0;
allRowAndColData = new ArrayList<ArrayList<String>>();
while ((currentLine = myInput.readLine()) != null) {
oneRowData = new ArrayList<String>();
String oneRowArray[] = currentLine.split(";");
for (int j = 0; j < oneRowArray.length; j++) {
oneRowData.add(oneRowArray[j]);
}
allRowAndColData.add(oneRowData);
System.out.println();
i++;
}
try {
HSSFWorkbook workBook = new HSSFWorkbook();
HSSFSheet sheet = workBook.createSheet("sheet1");
for (int i = 0; i < allRowAndColData.size(); i++) {
ArrayList<?> ardata = (ArrayList<?>) allRowAndColData.get(i);
HSSFRow row = sheet.createRow((short) 0 + i);
for (int k = 0; k < ardata.size(); k++) {
System.out.print(ardata.get(k));
HSSFCell cell = row.createCell((short) k);
cell.setCellValue(ardata.get(k).toString());
}
System.out.println();
}
FileOutputStream fileOutputStream = new FileOutputStream("C:\\outputFile.xls");
workBook.write(fileOutputStream);
fileOutputStream.close();
} catch (Exception ex) {
}
}
}
【问题讨论】:
-
你只需要用逗号替换管道,然后用excel打开就可以了
-
这与
Selenium有什么关系?我错过了什么吗? -
感谢 Debanjan 的投入。实际上我能够读取 csv 文件,但我需要将这些数据放入具有正确映射的 excel 中,例如第一行应该是标题(PERIOD EMPLID),后续行应该是每列映射的值(2018 年 5 月 4 日 78789 ) 就像图像中显示的那样,这在代码的帮助下,而不是直接在 excel 中打开文本文件。