Excel的数据导入到数据库中出现的两个问题及解决方案
来源:互联网 发布:ctp 行情数据 编辑:程序博客网 时间:2024/06/06 07:31
今天要把Excel中的数据导入到数据库中,写了段代码,出现两个问题,解决方法如下。
问题一:程序报错,报错如下,原因是excel中用了筛选,且有标题头,去掉即可。
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class ImportExcel { public static String filePath = "D://20130128.xls"; public static void main(String[] args) { try { // 创建对Excel工作簿文件的引用 FileInputStream file = new FileInputStream(filePath); HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath)); // 在Excel文档中,第一张工作表的缺省索引是0 // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0); HSSFSheet sheet = wookbook.getSheetAt(0); //获取到Excel文件中的所有行数 int rows = sheet.getPhysicalNumberOfRows(); //遍历行 for (int i = 0; i < rows; i++) { // 读取左上端单元格 HSSFRow row = sheet.getRow(i); // 行不为空 if (row != null) { //获取到Excel文件中的所有的列 int cells = row.getPhysicalNumberOfCells(); String value = ""; //遍历列 for (int j = 1; j < 7; j++) { //获取到列的值 HSSFCell cell = row.getCell((short)j); if (cell != null) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_FORMULA: break; case HSSFCell.CELL_TYPE_NUMERIC: value += cell.getNumericCellValue() + ","; break; case HSSFCell.CELL_TYPE_STRING: value += cell.getStringCellValue() + ","; break; default: value += cell.getStringCellValue() + " "; break; } } } System.out.println(i+" "+value); } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:224)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:160)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:163)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:210)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191)
at com.comtop.log.ImportExcel.main(ImportExcel.java:20)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.apache.poi.hssf.record.UnknownRecord.<init>(UnknownRecord.java:62)
at org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:57)
at org.apache.poi.hssf.record.ObjRecord.fillFields(ObjRecord.java:99)
at org.apache.poi.hssf.record.Record.fillFields(Record.java:90)
at org.apache.poi.hssf.record.Record.<init>(Record.java:55)
at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:61)
... 10 more
Exception in thread "main" org.apache.poi.hssf.record.RecordFormatException: Unable to construct record instance, the following exception occured: null
at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:237)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:160)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:163)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:210)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191)
at com.comtop.log.ImportExcel.main(ImportExcel.java:20)
问题二:原本是800条数据,导到512条就导不进去了,读取excel的数据打印出来看到有几条数据是乱码。随后检查excel中的内容,看到有些字段内容后面有空格,把空格去掉后,导入正常。
- Excel的数据导入到数据库中出现的两个问题及解决方案
- 如何把EXCEL的数据导入到ORACLE数据库中
- 将数据库的数据导入到excel中
- excel日期格式数据通过软件导入到数据库中显示数值的问题
- Excel的数据导入到sqlserver数据库
- excel导入数据到sqlserver的问题
- excel数据导入到mysql的问题
- 数据从Oracle数据库导入到MongoDB数据库中出现的一些问题,jar包的正确运行
- datalist的数据导入到Excel中
- Navicat导入数据到数据库中碰到的问题
- Excel数据导入到数据库乱码问题
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中)
- EXCEL导入数据库及数据库数据导出到EXCEL
- 将Excel数据导入到数据库中
- Excel数据导入到数据库中
- PHPExcel导入excel数据到数据库中
- excel中数据导入到mysql数据库
- 将excel数据导入到数据库中
- Android NDK学习 <三> Android.mk实例和NDK实用技巧
- stagefright框架(二)- 和OpenMAX的運作 .
- 【Java常用类库】_Math与Random类
- 旅客提前购火车票无票 开车前12306现上千余票
- 服务器和应用系统迁移方案
- Excel的数据导入到数据库中出现的两个问题及解决方案
- stagefright框架(三)-選擇Video Decoder .
- java atomic
- 国产四大名表
- Android NDK学习 <四> Application.mk简介
- pclint在 vs2008下的配置 .
- stagefright框架(四)-Video Buffer傳輸流程 .
- 【Java常用类库】_NumberFormat
- 仿webqq的webos框架zos,基于hoorayos2.0移植的纯html+js版本,后端语言.net