需要用到的jar包jxl.jar
问题一:报读取不到文件错误
原因是可能你读取的Excel文件后缀名无效:比如(test.xlsx)2016版的Excel工具默认后缀都是.xlsx了,通过jxl.jar只能读取后缀名为xls的Excel文件
问题二: 报Unable to recognize OLE stream 错误和数组越界
原因是excel不是jxl认定的标准的OLE file,可以通过另存为把Excel文件以其他形式保存下来,
这是我通过2016Excel工具另存为这个工作薄就完美解决了
随便附上读取文件部分代码:
public class ReadExcel {
public static void main(String[] args) throws Exception {
File file = new File("C:\\Users\\wangg\\Desktop\\test.xls");
InputStream in = new FileInputStream(file);
Workbook workbook = Workbook.getWorkbook(in);
// 获取第一张Sheet表
Sheet sheet = workbook.getSheet(0);
System.out.println(sheet.getRows());
List<Map<String,Object>> list=new ArrayList<>();
for(int i=2;i<sheet.getRows();i++){
Cell [] cells=sheet.getRow(i);
Map<String,Object> map=new HashMap<>();
map.put("name", cells[0].getContents());
map.put("tjdw", cells[1].getContents());
map.put("comment", cells[2].getContents());
list.add(map);
}
String pwd="000000";
for(Map<String,Object> map2:list){
String name="tjdw_"+map2.get("name").toString();
String user_id = UUID.randomUUID().toString();
String sql="insert into test(user_id,name,password)";
sql+="values('"+user_id+"','"+name+"','"+pwd+");";
System.out.println(sql);
}
}
}