字符串数组初始化是通过excel文件中的列和行进行动态初始化的



我的代码是通过动态初始化读取excel文件并将数据存储在二维字符串数组中,然后在运行此代码时打印该字符串数组java.lang.NullPointerException。如果我在静态方法中初始化数组,效果很好,但我希望在动态中初始化数组

excel文件年龄地点32钦奈31纽约55印度12 lohoas13孟买111双关语45洛杉矶

java代码

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser open = new JFileChooser();
open.showOpenDialog(null);
File f = open.getSelectedFile();
String filepath = f.getAbsolutePath();
jTextField1.setText(filepath);
try {
Workbook wb = Workbook.getWorkbook(f);
Sheet sh = wb.getSheet(0);
int row = sh.getRows();
int col = sh.getColumns();
String[][] ss = null;
for (int i = 0; i < row; i++) {
for (int j = 0; j <= col; j++) {
Cell c2 = sh.getCell(j, i);
System.out.print(c2.getContents() + "t");
ss[j][i] = c2.getContents();
}
System.out.print("n");
}
System.out.println("array");
for (int i = 0; i < ss.length; i++) {
for (int j = 0; j < ss.length; j++) {
System.out.print(ss[i][j] + "t");
}
}
} catch (IOException ex) {
Logger.getLogger(rdwr.class.getName()).log(Level.SEVERE, null, ex);
} catch (BiffException ex) {
Logger.getLogger(rdwr.class.getName()).log(Level.SEVERE, null, ex);
}
}

我认为在col的内部for循环中,您使用了<=这导致了一个问题。

更换这个

for (int j = 0; j <= col; j++) {

带有

for (int j = 0; j < col; j++) {

最新更新