EXECL导入数据的问题

时间:2021-12-26 06:42:41
我东西是全部可以导入成功 不过EXECL有行里面的 数字 就会变成日期,这个如何解决哈,比如“03P75-2”这个数据
 if((row!=null)&&!(row.equals(""))){
hd.setMainCycle(String.valueOf(row.getCell((short)9).getNumericCellValue()));//周期
hd.setMainWarrantyTime(String.valueOf(row.getCell((short)8).getNumericCellValue()));//保修期
hd.setMainManhourTest(String.valueOf(row.getCell((short)3).getNumericCellValue()));
hd.setMainManhourRepair(String.valueOf(row.getCell((short)4).getNumericCellValue()));
hd.setMainManhourOverhaul(String.valueOf(row.getCell((short)5).getNumericCellValue()));
hd.setMainImmobilityRepair(String.valueOf(row.getCell((short)6).getNumericCellValue()));
hd.setMainImmobilityOverhaul(String.valueOf(row.getCell((short)7).getNumericCellValue()));
hdd.setDateData(String.valueOf(String.valueOf(row.getCell((short)10).getDateCellValue())));
hddateBiz.addIArticle(hdd);
hd.setHddate(hdd);
//给件号跟ATA章节号赋值
art.setArticleIdName(row.getCell((short)1).getStringCellValue());
art.setArticleIdAta(row.getCell((short)2).getStringCellValue());
articleIdBiz.addIArticle(art);//如果没有这个件号系统就会添加这个件号
hd.setArticleId(art);//然后在把这个件号给hd的外键给予联系

cor.setCorporationName(row.getCell((short)0).getStringCellValue());//添加公司名称
corporationBiz.addIArticle(cor);
hd.setCorporation(cor);//添加入外键的公司名称

System.out.println("看看是否能进判断语句");
hdmainBiz.addHdmain(hd);
}


后来我把每句话都加上了这样的判断语句
if(row.getCell((short)4).getCellType()==HSSFCell.CELL_TYPE_NUMERIC ){
hd.setMainManhourRepair(String.valueOf(row.getCell((short)4).getNumericCellValue()));
}else if(row.getCell((short)4).getCellType()==HSSFCell.CELL_TYPE_STRING){
hd.setMainManhourRepair(row.getCell((short)4).getStringCellValue());
}

5 个解决方案

#1


自己顶下,难道没人能帮我么

#2


用poi吗?但是我的不会出现这种情况,是不是你的excel版本的问题。。

#3


嗯 是的 这是 我前面的代码 
		ExeclFiliter execlFiliter = new ExeclFiliter();
FormFile file = hf.getTheFile();//取得上传的文件
ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.out.println("获取到的文件:"+file);
try {
System.out.println(request.getRealPath("/"));
String filePath = request.getRealPath("/");

InputStream stream = file.getInputStream();//把文件读入
System.out.println(filePath +"UploadFiles\\"+file.getFileName());
File file1 = new File(filePath +"UploadFiles");
if(!file1.exists())
{
file1.mkdirs();
}
OutputStream bos = new FileOutputStream(filePath +"UploadFiles\\"+file.getFileName());

request.setAttribute("fileName",filePath + "/"+ file.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1){
bos.write(buffer, 0, bytesRead);//将文件写入服务器
}
bos.close();
stream.close();
// execlFiliter.intoExecl(filePath +"UploadFiles\\"+file.getFileName());

boolean flag = false;
boolean fl = true;
  
Hdmain hd = new Hdmain();
Corporation cor = new Corporation();
ArticleId art = new ArticleId();
Hddate hdd = new Hddate();
System.out.println("路径前一句");
   FileInputStream fs = new FileInputStream(filePath +"UploadFiles\\"+file.getFileName());
   System.out.println("路径后一句");
   HSSFWorkbook workbook = new HSSFWorkbook(fs);
   HSSFSheet sheet = workbook.getSheet("sheet");//对应Excel 工作表的名称
   int i = 0;
   while(fl){
    i++;//从第一行开始
    HSSFRow row = sheet.getRow(i);
    System.out.println("第"+row.getRowNum()+"行信息");

#4


自己顶下,各位大虾帮哈字我...

#5


呵呵,后来发现 是我自己不细心的错..

#1


自己顶下,难道没人能帮我么

#2


用poi吗?但是我的不会出现这种情况,是不是你的excel版本的问题。。

#3


嗯 是的 这是 我前面的代码 
		ExeclFiliter execlFiliter = new ExeclFiliter();
FormFile file = hf.getTheFile();//取得上传的文件
ByteArrayOutputStream baos = new ByteArrayOutputStream();
System.out.println("获取到的文件:"+file);
try {
System.out.println(request.getRealPath("/"));
String filePath = request.getRealPath("/");

InputStream stream = file.getInputStream();//把文件读入
System.out.println(filePath +"UploadFiles\\"+file.getFileName());
File file1 = new File(filePath +"UploadFiles");
if(!file1.exists())
{
file1.mkdirs();
}
OutputStream bos = new FileOutputStream(filePath +"UploadFiles\\"+file.getFileName());

request.setAttribute("fileName",filePath + "/"+ file.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1){
bos.write(buffer, 0, bytesRead);//将文件写入服务器
}
bos.close();
stream.close();
// execlFiliter.intoExecl(filePath +"UploadFiles\\"+file.getFileName());

boolean flag = false;
boolean fl = true;
  
Hdmain hd = new Hdmain();
Corporation cor = new Corporation();
ArticleId art = new ArticleId();
Hddate hdd = new Hddate();
System.out.println("路径前一句");
   FileInputStream fs = new FileInputStream(filePath +"UploadFiles\\"+file.getFileName());
   System.out.println("路径后一句");
   HSSFWorkbook workbook = new HSSFWorkbook(fs);
   HSSFSheet sheet = workbook.getSheet("sheet");//对应Excel 工作表的名称
   int i = 0;
   while(fl){
    i++;//从第一行开始
    HSSFRow row = sheet.getRow(i);
    System.out.println("第"+row.getRowNum()+"行信息");

#4


自己顶下,各位大虾帮哈字我...

#5


呵呵,后来发现 是我自己不细心的错..