package com.suypower.djbxt.czxs.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.suypower.djbxt.czxs.bean.ExcelBean;
/**
* Servlet implementation class for Servlet: AjaxChouQuServlet
*
*/
public class AjaxChouQuServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
this.doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String excelPath = new String(request.getParameter("excelPath").getBytes("iso8859-1"),"utf-8");
System.out.println("============解 析 EXCEL ==============="+excelPath);
// 解析excel
boolean jiexi = true;
ArrayList list = new ArrayList();
FileInputStream fis = new FileInputStream(excelPath);
HSSFWorkbook wb = new HSSFWorkbook(fis);
HSSFSheet sheet = wb.getSheetAt(2);
HSSFRow row=null;//行对像;
HSSFCell cell=null;//列对像;
int numRow = sheet.getLastRowNum()+1;
System.out.println("一共"+(numRow-1)+"行.");
ExcelBean eb = eb=new ExcelBean();
for(int i=1;i<numRow;i++)
{
eb=new ExcelBean();
row = sheet.getRow(i);
cell = row.getCell((short)i);
// 11 列
String djbNo =""; //许可证号
String enterpriseName ="";//企业名称
String address ="";//单位地址
String issueDate ="";//发证日期
String postcode ="";//邮政编码
String relationPerson ="";// 联系人
String telphone ="";//联系电话
String applyDate ="";//申报时间
String czLevel ="";
String cxLevel ="";
String csLevel ="";
String remark = "";
try
{
if(row.getCell((short)0)!=null && ! row.getCell((short)0).toString().equals(""))
{
cell=row.getCell((short)0);
djbNo = this.chickCell(cell);
eb.setDjbNo(djbNo);
}
// System.out.println("许可证号="+djbNo);
if(row.getCell((short)1)!=null && ! row.getCell((short)1).toString().equals(""))
{
cell=row.getCell((short)1);
enterpriseName = this.chickCell(cell);
eb.setEnterpriseName(enterpriseName);
}
// System.out.println("企业名称="+enterpriseName);
if(row.getCell((short)2)!=null && ! row.getCell((short)2).toString().equals(""))
{
cell=row.getCell((short)2);
address = this.chickCell(cell);
eb.setAddress(address);
}
// System.out.println("单位地址="+address);
if(row.getCell((short)3)!=null && ! row.getCell((short)3).toString().equals(""))
{
cell=row.getCell((short)3);
issueDate = this.chickCell(cell);
eb.setIssueDate(issueDate);
}
// System.out.println("发证日期="+issueDate);
if(row.getCell((short)4)!=null && ! row.getCell((short)4).toString().equals(""))
{
cell=row.getCell((short)4);
postcode = this.chickCell(cell);
eb.setPostcode(postcode);
}
// System.out.println("邮政编码="+postcode);
if(row.getCell((short)5)!=null && ! row.getCell((short)5).toString().equals(""))
{
cell=row.getCell((short)5);
relationPerson = this.chickCell(cell);
eb.setRelationPerson(relationPerson);
}
// System.out.println("联系人="+relationPerson);
if(row.getCell((short)6)!=null && ! row.getCell((short)6).toString().equals(""))
{
cell=row.getCell((short)6);
telphone = this.chickCell(cell);
eb.setTelphone(telphone);
}
// System.out.println("联系电话="+telphone);
if(row.getCell((short)7)!=null && ! row.getCell((short)7).toString().equals(""))
{
cell=row.getCell((short)7);
applyDate = this.chickCell(cell);
eb.setApplyDate(applyDate);
}
// System.out.println("申报时间="+applyDate);
if(row.getCell((short)8)!=null && ! row.getCell((short)8).toString().equals(""))
{
cell=row.getCell((short)8);
czLevel = this.chickCell(cell);
eb.setCzLevel(czLevel);
}
// System.out.println("czLevel="+czLevel);
if(row.getCell((short)9)!=null && ! row.getCell((short)9).toString().equals(""))
{
cell=row.getCell((short)9);
cxLevel = this.chickCell(cell);
eb.setCxLevel(cxLevel);
}
// System.out.println("cxLevel="+cxLevel);
if(row.getCell((short)10)!=null && ! row.getCell((short)10).toString().equals(""))
{
cell=row.getCell((short)10);
csLevel = this.chickCell(cell);
eb.setCsLevel(csLevel);
}
// System.out.println("csLevel="+csLevel);
if(row.getCell((short)11)!=null && ! row.getCell((short)11).toString().equals(""))
{
cell=row.getCell((short)11);
remark = this.chickCell(cell);
eb.setRemark(remark);
}
// System.out.println("备注="+remark);
// System.out.println("********************************************************");
}
catch(Exception ex)
{
jiexi = false;
ex.printStackTrace();
System.out.println("第"+(i)+"行格式错误!");
}
list.add(eb);
}
HttpSession session = request.getSession();
session.setAttribute("listA",list);
// 删除 上传的 临时 文件夹、
File file = new File(excelPath);
file.deleteOnExit();
String responseTextVar = String.valueOf(jiexi);
response.setContentType("text/html;charset=gb2312");
response.getWriter().write(responseTextVar);
}
private String chickCell(HSSFCell cell)
{
// 判断是否为String型
String all="";
if(cell.getCellType()==cell.CELL_TYPE_STRING){
all=cell.getStringCellValue();
}else{
//判断是否为数值型
if(cell.getCellType()==cell.CELL_TYPE_NUMERIC)
{
//判断是否为日期型
if(HSSFDateUtil.isCellDateFormatted(cell))
{
Date date=cell.getDateCellValue();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
all=formatter.format(date);
}else{//一般数值型
double d=cell.getNumericCellValue();
DecimalFormat df = new DecimalFormat("###########");
all = df.format(d);
}
}
}
return all;
}
}
package com.suypower.djbxt.dlyw.servlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import com.suypower.djbxt.electrician.business.module.electricianInfoMethod;
import com.suypower.djbxt.sysmanger.DBconnect;
import com.suypower.djbxt.dlyw.bean.*;
public class ImportEnterpriseInfo extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private static final long serialVersionUID = 1L;
static Logger logger = Logger.getLogger(ImportEnterpriseInfo.class.getName());
public ImportEnterpriseInfo() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String file=new String(request.getParameter("okf").getBytes("iso8859-1"),"gb2312").trim();
System.out.println(file);
ArrayList array=importXls(file);
int i=execdb(array);
String message="";
if(i==0)
{
message= "\n<Script language=\"javaScript\"> alert('导入成功!');</Script>";
}
else
{
message= "\n<Script language=\"javaScript\"> alert('文件格式错误,导入失败!');</Script>";
}
session.setAttribute("ImportMessage", message);
response.sendRedirect("importEnterpriseInfo.jsp");
}
public ArrayList importXls(String xlsFile)
{
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
String sql="";
FileInputStream fIn=null;
try
{
fIn=new FileInputStream(xlsFile);
HSSFWorkbook readWorkBook= new HSSFWorkbook(fIn);
HSSFSheet readSheet= readWorkBook.getSheetAt(0);
// readWorkBook.getSheet("电工进网作业许可证持证人员情况表");
HSSFRow readRow =readSheet.getRow(0);
// int columns=readRow.getPhysicalNumberOfCells();
int rows=readSheet.getLastRowNum()+1;
System.out.println("rows="+rows);
ArrayList array=new ArrayList();
EnterpriseInfo enterprise=null;
for(int i=0;i<rows;i++)
{
enterprise=new EnterpriseInfo();
readRow =readSheet.getRow(i);
String enterpriseName="";
//企业名称
try
{
if(readRow.getCell((short)0)!=null && ! readRow.getCell((short)0).toString().equals(""))
{
enterpriseName=readRow.getCell((short)0).toString();
}
System.out.println("企业名称="+enterpriseName);
}
catch(Exception ex)
{
logger.error(ex.toString());
System.out.println("企业名称="+enterpriseName);
System.out.println("第"+(i)+"行,姓名格式错误!");
}
//2许可证编号
String djbno="";
if(readRow.getCell((short)4)!=null && !readRow.getCell((short)4).toString().equals(""))
{
djbno=readRow.getCell((short)4).toString();
}
System.out.println("许可证编号="+djbno);
//3容量
String rl="";
if(readRow.getCell((short)7)!=null && !readRow.getCell((short)7).toString().equals(""))
{
rl=readRow.getCell((short)7).toString().trim();
}
System.out.println("容量="+rl+" ");
//4机组类型
String jzlx="";
if(readRow.getCell((short)8)!=null && !readRow.getCell((short)8).toString().equals(""))
{
jzlx=readRow.getCell((short)8).toString();
}
System.out.println("机组类型 ="+jzlx+" ");
//6城市
String city="";
if(readRow.getCell((short)9)!=null && !readRow.getCell((short)9).toString().equals(""))
{
city=readRow.getCell((short)9).toString();
}
System.out.println("城市 ="+city);
//7发证日期
String fzrq="2007-11-01";
try
{
if(readRow.getCell((short)10)!=null&& readRow.getCell((short)10).toString()!="")
{
fzrq = formatter.format(readRow.getCell((short)10).getDateCellValue());
}
}
catch(Exception err)
{
System.out.println("第"+(i)+"行,发证日期格式错误!");
System.out.println(err.toString());
}
System.out.println("发证日期 ="+fzrq);
//8联系人
String lxr="";
if(readRow.getCell((short)11)!=null &&!readRow.getCell((short)11).equals(""))
{
lxr=readRow.getCell((short)11).toString();
}
System.out.println("联系人 ="+ lxr);
//9电话 2两个
String tmp="";
String phone="";
String tel="";
if(readRow.getCell((short)12)!=null&&!readRow.getCell((short)12).equals(""))
{
tmp=readRow.getCell((short)12).toString();
try
{
DecimalFormat df2 = new DecimalFormat("#");
phone=df2.format(new Double(tmp));
}
catch(Exception err)
{
if(tmp.indexOf("/")!=-1)
{
phone=tmp.substring(0,tmp.indexOf("/"));
tel=tmp.substring(tmp.indexOf("/")+1,tmp.length());
}
else if(tmp.indexOf("\\")!=-1)
{
phone=tmp.substring(0,tmp.indexOf("\\"));
tel=tmp.substring(tmp.indexOf("\\")+1,tmp.length());
}
else if(tmp.indexOf("、")!=-1)
{
phone=tmp.substring(0,tmp.indexOf("、"));
tel=tmp.substring(tmp.indexOf("、")+1,tmp.length());
}
else if(tmp.indexOf(",")!=-1)
{
phone=tmp.substring(0,tmp.indexOf(","));
tel=tmp.substring(tmp.indexOf(",")+1,tmp.length());
}
else if(tmp.indexOf("-")!=-1)
{
System.out.println("区号电话="+tmp);
phone=tmp;
}
else if(tmp.indexOf("-")!=-1)
{
System.out.println("区号电话="+tmp);
phone=tmp;
}
else if(tmp.indexOf("—")!=-1)
{
System.out.println("区号电话="+tmp);
phone=tmp;
}
else if(tmp.indexOf(" 转")!=-1)
{
tmp=tmp.replaceAll("转","-").trim();
System.out.println("区号电话="+tmp);
phone=tmp;
}
else if(tmp.indexOf("无")!=-1)
{
phone="";
}
else if(tmp.indexOf("`")!=-1)
{
phone=tmp.substring(0,tmp.indexOf("`"));
}
else
{
phone=tmp;
}
}
}
System.out.println("联系电话="+phone);
//加入List
enterprise.setEnterpriseName(enterpriseName);
enterprise.setDjbno(djbno);
enterprise.setRl(rl);
enterprise.setJzlx(jzlx);
enterprise.setCity(city);
enterprise.setFzrq(fzrq);
enterprise.setLxr(lxr);
enterprise.setTel(phone);
array.add(enterprise);
}
return array;
}catch(Exception e){
logger.error(e.toString());
int count=1;
System.out.println(sql);
System.out.println("第"+count+"次进入错误!");
count++;
e.printStackTrace();
return null;
}
finally
{
try
{
if(fIn!=null)
{
fIn.close();
}
}catch(Exception e)
{
e.printStackTrace();
}
}
}
public int execdb(ArrayList array)
{
Connection connect = null;
DBconnect con = null;
try
{
con = new DBconnect();
connect = con.getConection();//服务器4导入数据
Statement stmt = connect.createStatement();
Statement updateStmt = connect.createStatement();
//获取ArrayList值
EnterpriseInfo enterprise=null;
String enterpriseName="";
String djbno="";
String rl="";
String jzlx="";
String city="";
String fzrq="";
String lxr="";
String tel="";
String sql1="";
String sqlExist="";
for(int i=0;i<array.size();i++)
{
enterprise=(EnterpriseInfo)array.get(i);
enterpriseName=enterprise.getEnterpriseName();
djbno=enterprise.getDjbno();
rl=enterprise.getRl();
jzlx=enterprise.getJzlx();
city=enterprise.getCity();
fzrq=enterprise.getFzrq();
lxr=enterprise.getLxr();
tel=enterprise.getTel();
sqlExist="select * from TB_dlyw_enterprise where enterpriseName='"+enterpriseName+"'";
ResultSet res = stmt.executeQuery(sqlExist);
String id="";
if(res.next())
{
id=res.getString("id");
sql1 = "update TB_dlyw_enterprise set content='"+rl+"',jzlx='"+jzlx+"',city='"+city+
"',linkman='"+lxr+"',tel='"+tel+"',djbno='"+djbno+"',xk_date='"+fzrq+"' where id="+id;
System.out.println("update="+sql1);
}
else
{
sql1 = "insert into tb_dlyw_enterprise(enterprisename,content,jzlx,city,linkman,tel,djbno,xk_date) values('"+enterpriseName+"','"+rl
+"','"+jzlx+"','"+city+"','"+lxr+"','"+tel+"','"+djbno+"','"+fzrq+"')";
System.out.println("insert="+sql1);
}
updateStmt.execute(sql1);
}
return 0;
}catch(Exception ex)
{
ex.printStackTrace();
return 1;
}
finally
{
try
{
if (connect != null)
{
connect.close();
}
} catch (Exception e)
{
logger.error(e.toString());
e.printStackTrace();
}
}
}
//日期格式转换
public String getString(String date)
{
String s="";
String tmp="";
try
{
if(date.indexOf("月")!=-1)
{
s=date.substring(date.indexOf("-")+1,date.indexOf("月"));
if(s.equals("一"))
{
tmp="1";
}
else if(s.equals("二"))
{
tmp="2";
}
else if(s.equals("三"))
{
tmp="3";
}
else if(s.equals("四"))
{
tmp="4";
}else if(s.equals("五"))
{
tmp="5";
}
else if(s.equals("六"))
{
tmp="6";
}
else if(s.equals("七"))
{
tmp="7";
}
else if(s.equals("八"))
{
tmp="8";
}
else if(s.equals("九"))
{
tmp="9";
}
else if(s.equals("十"))
{
tmp="10";
}
else if(s.equals("十一"))
{
tmp="11";
}else if(s.equals("十二"))
{
tmp="12";
}
s=date.substring(date.indexOf("月")+2,date.length())+"-"+ tmp+"-"+date.substring(0,date.indexOf("-"));
}
}
catch(Exception ex)
{
logger.error(ex.toString());
ex.printStackTrace();
}
return s ;
}
public boolean isNumeric(String str)
{
Pattern pattern = Pattern.compile("[0-9]");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() )
{
return false;
}
return true;
}
}
分享到:
相关推荐
在Java开发中,上传并解析Excel文件是一种常见的需求,特别是在数据处理、报表导入或系统集成等场景。本篇文章将深入探讨如何实现这个功能,主要涉及的技术包括文件上传、Excel解析以及数据库操作。 首先,我们需要...
5. **解析并入库** 对于每行数据,我们可以根据业务需求进行解析。这可能涉及到JSON、CSV或其他格式的解析。例如,如果数据是CSV格式,可以使用`java.util.StringTokenizer`或`java.util.Scanner`进行解析。 ```...
2. **解析Excel文件**:解析Excel文件通常需要借助第三方库,如Apache POI或OpenCSV。Apache POI是Java中处理Microsoft Office格式文件的库,非常适合处理Excel。首先,你需要在`pom.xml`中添加Apache POI依赖。然后...
《Excel解析工具POI.jar详解》 在信息技术领域,数据处理是不可或缺的一部分,尤其是在大数据时代,Excel作为广泛使用的表格处理软件,其数据处理能力受到广大用户的青睐。然而,当面对大量Excel数据时,传统的手动...
jsp页面可以批量上传多个excel文件,后台解析入库。并将信息展现在jsp页面表格里,勾选多个数据,可以导出excel文件。很方便,很实用!(每一行数据,就相当于表格里的某张表的一条信息,后期只要改下表结构,数据库...
以下是对"出入库管理系统excel表格模板"的详细解析: 1. **基本信息表**:通常,出入库管理系统的Excel模板会包含一个基本信息表,用于记录商品的基本信息,如商品编码、名称、规格、单位、供应商信息、库存初始...
本篇文章将详细讲解如何使用Apache POI解析Excel文件,并将数据写入数据库。 首先,我们需要了解Apache POI的基本概念。POI提供了一个Java API,使得开发者可以在不依赖Microsoft Office的情况下,处理Excel文件。...
在Excel入库的场景中,jxl库是关键工具,帮助解析Excel文件并准备数据进行数据库操作。 首先,我们需要理解如何使用jxl库来读取Excel文件。这通常涉及以下步骤: 1. 加载Excel文件:使用WorkbookFactory类的create...
Java解析Excel文件并把数据存入数据库 本篇文章主要介绍了Java解析Excel文件并把数据存入数据库的方法,涵盖了上传Excel文件、解析Excel文件、将数据存入数据库等多个方面的知识点。 一、上传Excel文件 在上传...
2. **解析Excel文件**:在后端,你需要接收上传的文件,读取并解析其内容。使用`MultipartFile`对象接收文件,然后使用POI库的`InputStream`读取数据。 ```java @PostMapping("/import") public String importExcel...
对于Java开发者来说,能够解析Excel文件是一项重要的技能。"Excel解析第一版本"的主题聚焦于如何使用Java来读取、操作和解析Excel文件。下面我们将深入探讨这个话题。 首先,Java中用于解析Excel文件的主要库有...
首先,让我们详细探讨Java解析Excel的步骤: 1. **引入库**:为了处理Excel文件,我们通常会用到Apache POI库。Apache POI是Apache软件基金会的一个项目,提供了API来读写Microsoft Office格式的文件,包括Excel。...
解析excel数据入库的三个jar包,org.apache.poi.hssf.usermodel.HSSFCell; org.apache.poi.hssf.usermodel.HSSFRow; org.apache.poi.hssf.usermodel.HSSFSheet; org.apache.poi.hssf.usermodel.HSSFWorkbook;
本教程将详述如何使用Delphi编程语言结合Excel文件来读取特定列的信息,并将其高效地写入Oracle数据库。首先,我们需要理解Delphi、Excel文件处理以及Oracle数据库的基本概念。 Delphi是一种基于Object Pascal的...
本文将详细解析“Excel模板出入库登记表”,帮助你更有效地进行库存管理。 一、模板结构与功能 “出入库登记表”通常包含以下几个主要部分: 1. **基本信息区**:包括日期、入库单号/出库单号、供应商/客户信息等...
通过读取解析固定模板中的内容,生成JavaBean类。 除了生成Bean ,也可以生成其他类,可自行扩展。 这种场景比较局限,项目开发中用到的不多,如果定义类有几十、表字段很多,同时应对项目初期,表结构表更需求较多...
最后,将解析出的数据逐条调用`saveData`方法,完成数据的入库。 以上就是使用JFinal结合HSSFWorkbook导入Excel并解析内容的整个流程。实际应用中可能还需要处理更复杂的情况,例如处理日期格式、错误检查、批处理...
《Excel模板高级进销存管理系统的深度解析与应用》 在现代企业管理中,进销存管理系统扮演着至关重要的角色,它能帮助企业精确掌握库存、销售和采购等关键环节的数据,从而实现高效运营。本篇文章将深入探讨一款...
在Excel中,仓库出入库记录表是管理库存和采购流程的关键工具。这个模板适用于各种规模的企业,特别是那些需要跟踪物资流动的小型至中型企业。以下是对这个模板的详细解析: 1. **基本信息区域**:模板通常会包含一...
### 解析Excel文件的原理 Excel文件本质上是二进制格式(.xls)或XML格式(.xlsx)。PHP Excel Parser Pro v4.0 应用特定的解析算法来解读这些文件。对于老版本的二进制文件,它会解析文件结构,识别工作表、单元格...