一部分代码如下,剩下的思路就搞不出来了(有报错):
public class TestJxl {
public static void main(String args[]){
JFileChooser jfc=new JFileChooser();
jfc.showOpenDialog(null);
File f1=jfc.getSelectedFile();
int q,w;
List list=new ArrayList();
try{
// 构建Workbook对象, 只读Workbook对象
// 直接从本地文件创建Workbook, 从输入流创建Workbook
FileInputStream fis=new FileInputStream(f1);
Workbook wb1=Workbook.getWorkbook(f1);
jxl.Sheet st=wb1.getSheet(0);
Cell cell=null;
q=st.getColumns();
w=st.getRows();
for(int i=0;i<q;i++){
for(int j=0;j<w;j++){
cell=st.getCell(i, j);
list.add(cell.getContents());
}
}
for(String ss:list){
System.out.println(ss);
}
System.out.println(list.get(0));
wb1.close();
fis.close();
jfc.showSaveDialog(null);
File f2=jfc.getSelectedFile();
FileOutputStream fos=new FileOutputStream(f2);
//获取可写工作簿
WritableWorkbook wwb=Workbook.createWorkbook(fos);
// 读取第一张工作表
WritableSheet dataSheet=wwb.getSheet(0);
// 设置冻结单元格
dataSheet.getSettings().setVerticalFreeze(5);
dataSheet.getSettings().setHorizontalFreeze(4);
int y=0;
for(int i=0;i<q;i++){
for(int j=5;j<5+w;j++){
dataSheet.addCell(new Label(i, j, list.get(y++)));
}
}
wwb.write();
wwb.close();
fos.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at jxl.write.biff.WritableWorkbookImpl.getSheet(WritableWorkbookImpl.java:408)
at test.TestJxl.main(TestJxl.java:67)