我正在創建一個java程序來讀取excel表單並創建逗號分隔文件。當我運行我的示例excel文件,空白列,第一行完美工作,但其餘的行跳過空白單元格。 我已閱讀有關將空白單元插入行所需的代碼更改,但我的問題是爲什麼第一行工作?apache poi cellIterator跳過空白單元格但不在第一行
public ArrayList OpenAndReadExcel(){
FileInputStream file = null;
HSSFWorkbook workBook = null;
ArrayList <String> rows = new ArrayList();
//open the file
try {
file = new FileInputStream(new File("Fruity.xls"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("Could not open Input File");
e.printStackTrace();
}
// open the input stream as a workbook
try {
workBook = new HSSFWorkbook(file);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Can't Open HSSF workbook");
e.printStackTrace();
}
// get the sheet
HSSFSheet sheet = workBook.getSheetAt(0);
// add an iterator for every row and column
Iterator<Row> rowIter = sheet.rowIterator();
while (rowIter.hasNext())
{
String rowHolder = "";
HSSFRow row = (HSSFRow) rowIter.next();
Iterator<Cell> cellIter = row.cellIterator();
Boolean first =true;
while (cellIter.hasNext())
{
if (!first)
rowHolder = rowHolder + ",";
HSSFCell cell = (HSSFCell) cellIter.next();
rowHolder = rowHolder + cell.toString() ;
first = false;
}
rows.add(rowHolder);
}
return rows;
}
public void WriteOutput(ArrayList<String> rows) {
// TODO Auto-generated method stub
PrintStream outFile ;
try {
outFile = new PrintStream("fruity.txt");
for(String row : rows)
{
outFile.println(row);
}
outFile.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
-----
我的.xls文件輸入(對不起不知道怎麼在這裏插入Excel表格)
名稱>>>>> >>>>>原產地>>>>>>>>>原產地>>>>>>>等級>>>>>>月數
蘋果>>>>>>>>美國> >>>>>>>>>>>>>>>>>>>>>華盛頓>>>>>>>>>>>>>> A >>>>>>>>> 6
橙色>>>>>>美國>>>>>>>>>>>>>>>>>>>>>>佛羅里達>>>>>>>>>>>>>>>>> A >> >>>>>>> 9
菠蘿>>>>>美國>>>>>>>>>>>>>>>>>>>>>>>>>>夏威夷>>>>>>>>>>>>>>>>>> B >>>>>>>>> 10
草莓>>>>美國>>>>>>>>>>>>>>>>>>>>>>新澤西州>>>>>>> >>>>>>>ç>>>>>>>>>> 3
月
我的輸出文本文件
名稱,產地,原產國,,,級國家,沒有 蘋果,美國,華盛頓,A,6.0
橙色,美國,佛羅里達,A,9.0
菠蘿,美國,夏威夷,B,10.0
草莓,美國,新澤西,C,3.0
Notice the two extra commas before the Grade column... This is because I have two blank columns there.<br/>
這些額外的逗號缺少輸出的其餘部分。
我使用Apache POI-3.9-20121203.jar
想通了這一個。這是格式化...第一行是標題是大膽的...大膽適用於空列...因此,這些列被假定爲空白值,而不是空...謝謝 – user2047551
考慮編輯問題文本。 – soufrk