これが私のコードです
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.Vector;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
public class ReadExcelFile {
public static void main(final String[] args) {
final String fileName = "C:\\temp\\carreras.xls";
final Vector<Vector<Cell>> dataHolder = ReadCSV(fileName);
printCellDataToConsole(dataHolder);
}
public static Vector<Vector<Cell>> ReadCSV(final String fileName) {
final Vector<Vector<Cell>> cellVectorHolder = new Vector<Vector<Cell>>();
try {
final FileInputStream myInput = new FileInputStream(fileName);
final POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);
final HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);
final HSSFSheet mySheet = myWorkBook.getSheetAt(0);
final Iterator<Row> rowIter = mySheet.rowIterator();
while (rowIter.hasNext()) {
final HSSFRow myRow = (HSSFRow) rowIter.next();
final Iterator<Cell> cellIter = myRow.cellIterator();
final Vector<Cell> cellStoreVector = new Vector<Cell>();
while (cellIter.hasNext()) {
final HSSFCell myCell = (HSSFCell) cellIter.next();
cellStoreVector.addElement(myCell);
}
cellVectorHolder.addElement(cellStoreVector);
}
} catch (final Exception e) {
e.printStackTrace();
}
return cellVectorHolder;
}
private static void printCellDataToConsole(
final Vector<Vector<Cell>> dataHolder) {
for (int i = 0; i < dataHolder.size(); i++) {
final Vector<Cell> cellStoreVector = dataHolder.elementAt(i);
for (int j = 0; j < cellStoreVector.size(); j++) {
final HSSFCell myCell = (HSSFCell) cellStoreVector.elementAt(j);
final String stringCellValue = myCell.toString();
System.out.print(stringCellValue + "|");
}
System.out.println();
}
}
}
1 つの小さな詳細を除いて、期待どおりに機能します。空のセルが見つかった場合はスキップされます。予想される出力は次のとおりです。
1|2||4
3||7|2
ただし、出力は
1|2|4
3|7|2
Excel ファイル全体を反復処理して、期待どおりの動作を得るにはどうすればよいですか? 約 400 個の Excel ファイルを解析する必要があるため、xls ファイルを修正することはできません。