-3
我已經成功地將XLS工作表讀取到ArrayList
。現在棘手的部分是,我試圖將其映射到固定的二維數組。分別爲i = 1705
和x = 155
和y = 11
。將數組列表轉換爲固定的二維數組並打印?
編輯:也許我沒有明確的問題部分所述。 我試圖將下面提到的Excel(Book1.xls)的元素複製到二維數組中。到目前爲止,我已經成功將ti複製到arraylist中:「singleRows」。但我無法將它們移動到二維數組:「myReplicate」。
我想使用此數組的元素來創建SQL插入語句。 希望我沒有錯過任何指定要求。
package excelread3;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Stream;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
public class ExcelRead3
{
public static void main(String[] args) throws IOException
{
FileInputStream file = new FileInputStream(new File("C:\\Users\\CReaper\\Documents\\docs\\Opice\\Book1.xls"));
HSSFWorkbook wb = new HSSFWorkbook(file);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow firstRow = sheet.getRow(0);
int rowcount = sheet.getPhysicalNumberOfRows();
int colcount = firstRow.getLastCellNum();
Iterator<Row> rowIterator = sheet.iterator();
ArrayList<Object> singleRows = new ArrayList<Object>();
ArrayList<Object> list = new ArrayList<Object>();
while (rowIterator.hasNext())
{
Row row = rowIterator.next();
Iterator <Cell> cellIterator = row.cellIterator();
for(int i =1 ; i < colcount ; i++)
{
while (cellIterator.hasNext())
{
Cell cell = cellIterator.next();
//System.out.print(cell.getStringCellValue() + "\t\t");
singleRows.add(cell.getStringCellValue());
}
}
list.add(singleRows);
}
// System.out.println(rowcount + "\n");
// System.out.println(colcount + "\n");
Stream<Object> stringStream;
stringStream = singleRows.stream();
String[][] myReplicate = new String[rowcount][colcount];
myReplicate = stringStream.toArray(new String[stringStream.size()]);
for (int i = 0; i < rowcount; i++)
{
for(int j = 0; j < colcount; j++)
{
System.out.printf("%5d ", myReplicate[i][j]);
}
System.out.println();
}
file.close();
}
}
我想在填充數組元素之前將ArrayList轉換爲流。
爲什麼代碼中的每一行都是註釋?另外,迴避機制並解釋你想要達成的目標。這個問題目前還不清楚,很可能會被低估並擱置。 –
你好,這是我第一次嘗試插入代碼到stackoverflow,它一直說我的代碼沒有正確格式化,直到我評論每一行(Ctrl + K)..我在這裏試圖做的是將excel映射到二維數組,然後爲sql插入語句創建案例。 – Manjunath16