我使用Java从Excel工作表中获取数据。我必须划分Excel工作表的每一行,并将它们分别存储到数组Item1
,Item2
,Item3
,Item4
中。
1. Item1 Item2 Item3 Item4 2. 104F410 020544E0 1120D3614 HD434816N 43X48 16-MIC CLEAR Runas 3. Promo 1343u 548548T 3465689634 HD404816N 40X48 16-MIC CLEAR
(等)
我使用了以下代码,但是将项目错误地称为Item2
和Item3
作为项目
for (int realel = 0; realel < fouritems.size(); realel++) {
System.out.println("4 elements can be splitted from :" + fouritems.get(realel));
}
headitems2 = new String[fouritems.size()];
int f = 0;
for (int realel1 = 0; realel1 < fouritems.size(); realel1++) {
headitems2 = fouritems.get(realel1).split("\\s+");
try {
Item1.add(headitems2[0]);
System.out.println("Item1 :" + Item1.get(f));
Item2.add(item1[1]);
System.out.println("Item2 :" + VendorItem.get(f));
Item3.add(items3[2]);
System.out.println("Item3 :" + Item3.get(f));
f++;
} catch (Exception e) {
}
}
关于我如何解决这个问题的任何想法?
答案 0 :(得分:1)
几年前,我使用Apache POI - the Java API for Microsoft Documents来处理Excel文件。您可以使用API通过Cell类的getStringCellValue直接从工作表中获取数据。这非常适用于普通Excel表格。如果您的Excel文件包含许多花哨的功能或VBA代码,那么您可能会遇到麻烦。
假设您的所有单元格都被格式化为文本/字符串,下面的代码将读取Excel工作表的内容。在这种情况下,您必须读取数值,您必须使用getNumericCellValue()而不是getStringCellValue()。
import java.io.File;
import java.io.IOException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
public class ReadFromXLS {
public static void main(String[] args) throws InvalidFormatException, IOException {
File xlFile = new File("MyInput.xls");
Workbook wb = WorkbookFactory.create(xlFile);
Sheet sheet = wb.getSheet("Sheet1");
Row row = null;
Cell cell = null;
String value = null;
StringBuffer sb = new StringBuffer(100);
for (int i = 1; i <= 2; i++) {
row = sheet.getRow(i);
for (int j=0; j <= 3; j++) {
cell = row.getCell(j);
value = cell.getStringCellValue();
sb.append(";").append(value);
}
System.out.println(sb.substring(1));
sb = new StringBuffer(100);
}
}
}