需要用到的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); } } }
