`
wedtlcy
  • 浏览: 24123 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

POI读取Excel2003数据存储数据库

    博客分类:
  • Java
 
阅读更多

POI读取Excel2003数据存储数据库

 

1、JSP Form表单部分代码(关键:enctype="multipart/form-data"

<FORM id=impform name=impform action="ImportOperation1.jsp" 

method=post enctype="multipart/form-data" onSubmit="onSave();return false">

<TABLE class=viewform width="100%">

  <COLGROUP>

  <COL width="20%">

  <COL width="80%">

  <TBODY>

  <TR class=Title>

    <TH colSpan=2><%=SystemEnv.getHtmlLabelName(19464,user.getLanguage())%></TH></TR>

  <TR class=spacing>

    <TD class=line1 colSpan=2 ></TD></TR>

  <TR class= Spacing><TD class=Line colSpan=2></TD></TR>

  <TR>

<TD><%=SystemEnv.getHtmlLabelName(16699,user.getLanguage())%></TD>

<TD class=Field>

<input class=inputstyle type=file  name="filename" size=40>&nbsp;&nbsp;

<button Class=AddDoc type=button onclick="onSave(this)">

<%=SystemEnv.getHtmlLabelName(18596,user.getLanguage())%></button> </TD>

  </TR>

  <TR class= Spacing><TD class=Line colSpan=2></TD></TR>

  

<%

String msg="";

if(request.getAttribute("msg")!=null){

msg = Util.null2String((String)request.getAttribute("msg"));

}

if(msg!=""){

%>

<TR>

<td id="msg" align="left" colspan="3">

<font size="2" color="#FF0000"><%=msg %></font>

</td>

</TR>

<%} %>

<TR>

<td><a href="markerInformation1.xls"><%=SystemEnv.getHtmlLabelName(18616,user.getLanguage())%></a></td>

 

</TR>

<TR>

<td  align="left" colspan="3">

说明:请按模板排列导入EXCEL文档中各字段的顺序 </td>

</TR>

<TR class= Spacing><TD class=Line1 colSpan=2></TD></TR>

</TBODY>

</TABLE>

<div id='_xTableLoadmask' style='background:#FFFFFF;padding:3px;width:100%;display:none' valign='top'></div>

 

</FORM>

 

2、接收请求ImportOperation1.jsp

<%@page import="weaver.file.FileUploadToPath"%>

<%@ page import="weaver.general.Util" %>

<%@ page import="java.util.*" %>

<%@ page language="java" contentType="text/html; charset=GBK" %> <%@ include file="/systeminfo/init.jsp" %>

<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />

<%@ page import="westvalley.basis.Markerinformation"%>

 

<%

 

//文件上传

FileUploadToPath fu = new FileUploadToPath(request) ; 

//上传后的文件路径

filename = fu.uploadFiles("filename");

Markerinformation mi = new Markerinformation(request,response);

mi.import1Data(filename,request);

//进行导入

System.err.println("信息"+mi.getMsg());

request.setAttribute("msg", mi.getMsg());

request.getRequestDispatcher("import1.jsp").forward(request, response);

 

%>

 

3、读取Excel内容并插入数据

/**

* 市场信息反馈导入来自营销中心

* @param Excelfilepath

* @throws Exception

*/

public String import1Data(String path,HttpServletRequest request) throws IOException {

       InputStream is = new FileInputStream(path);

       HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

       msg = "";

       User localUser = (User)request.getSession(true).getAttribute("weaver_user@bean");

String strUserId  = Util.null2String(localUser.getUID());

 

       try {

        HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);

       

        int checkresult = check1Header(hssfSheet);

if(checkresult !=-1){

msg += "数据导入失败,第"+(checkresult)+"行,表头有误,与模板中的表头不一样,请认真核对";

}

       

if("".equals(msg)){

// 读取列数

for (int i = 0; i < hssfWorkbook.getNumberOfSheets(); i++) {

   // 读取行数

   for (int j = 1; j <= hssfSheet.getLastRowNum(); j++) {

       HSSFRow hssfRow = hssfSheet.getRow(j);

       if (hssfRow != null) {

           HSSFCell classify_timeCell = hssfRow.getCell((short)0);

           HSSFCell areaCell = hssfRow.getCell((short) 1);

           HSSFCell typeCell = hssfRow.getCell((short) 2);

           HSSFCell keywordCell = hssfRow.getCell((short) 3);

           HSSFCell information_feedbakCell = hssfRow.getCell((short) 4);

           HSSFCell note1Cell = hssfRow.getCell((short) 5);

           HSSFCell note2Cell = hssfRow.getCell((short) 6);

           HSSFCell advise_feedbakCell = hssfRow.getCell((short) 7);

           String classify_time = trimToString( getValue(classify_timeCell).equals("")?"":getValue(classify_timeCell)+"-01");   //月份

           String area ="";

           if(areaCell!=null){

            area = trimToString( getValue(areaCell)); //区域

           }else{

            msg += "第"+(j)+"行,第"+(2)+"列,区域不能为空!<br>";

            continue;

           }

           String type = trimToString( returnType(getValue(typeCell).trim())); //类型

           if("7".equals(type)){

            msg += "第"+(j)+"行,第"+(3)+"列,分类错误!<br>";

            continue;

           }

           String keyword = trimToString( getValue(keywordCell)); //关键字

           String information_feedbak = trimToString( getValue(information_feedbakCell)); //信息反馈

           String note1 = trimToString( getValue(note1Cell)); //备注1

           String note2 = trimToString( getValue(note2Cell)); //备注2

           String advise_feedbak = trimToString( getValue(advise_feedbakCell)); //建议-反馈

           

           //拼接插入语句

           String  strInsertSql = " INSERT INTO marker_information_back("+

            "classify_time,"+

            "area,"+

            "type,"+

            "keyword,"+

            "information_feedbak,"+

            "note1,"+

            "note2,"+

            "advise_feedbak,"+

            "create_id,"+

            "create_time) values ("

+ "'"+ classify_time+ "',"

+ "'"+ area+ "',"

+ "'"+ type+ "',"

+ "'"+ keyword+ "',"

+ "'"+ information_feedbak+ "',"

+ "'"+ note1+ "',"

+ "'"+ note2+ "',"

+ "'"+ advise_feedbak+ "',"

+ "'"+ strUserId+ "',"

+ "GETDATE()) ";

            System.out.println(strInsertSql);

rs2.executeSql(strInsertSql);

       }

   }

}

if("".equals(msg)){

msg += "导入成功";

}else {

msg += "导入失败";

recordSetTrans.rollback();

}

}

} catch (Exception e) {

log.info("异常:"+e);

}

       return msg;

 

   }

 

 /**

* 校验excle格式

* @param sheet

* @return

*/

private static int check1Header(HSSFSheet sheet) {

 

String cellValue ="";

for(int j=0;j<1;j++){//行

for(int i=0;i<8;i++){//列

HSSFRow row = sheet.getRow(0);

HSSFCell cell =row.getCell((short)i);

cellValue = cellToString(cell).trim();

if(j==0){

if(i==0){

if(!"月份".equals(cellValue)){return i;}

}

if(i==1){

if(!"地区".equals(cellValue)){return i;}

}

if(i==2){

if(!"分类".equals(cellValue)){return i;}

}

if(i==3){

if(!"关键字".equals(cellValue)){return i;}

}

if(i==4){

if(!"信息反馈".equals(cellValue)){return i;}

}

if(i==5){

if(!"备注1".equals(cellValue)){return i;}

}

if(i==6){

if(!"备注2".equals(cellValue)){return i;}

}

if(i==7){

if(!"建议-反馈".equals(cellValue)){return i;}

}

}

}

}

return -1;

}

 

/**

* 校验表头

* @param sheet

* @return

*/

private static int check2Header(HSSFSheet sheet) {

 

String cellValue ="";

for(int j=0;j<1;j++){//行

for(int i=0;i<6;i++){//列

HSSFRow row = sheet.getRow(0);

HSSFCell cell =row.getCell((short)i);

cellValue = cellToString(cell).trim();

if(j==0){

if(i==0){

if(!"客户名称".equals(cellValue)){return i;}

}

if(i==1){

if(!"日期".equals(cellValue)){return i;}

}

if(i==2){

if(!"上年采购".equals(cellValue)){return i;}

}

if(i==3){

if(!"今年采购".equals(cellValue)){return i;}

}

if(i==4){

if(!"信息反馈".equals(cellValue)){return i;}

}

if(i==5){

if(!"备注".equals(cellValue)){return i;}

}

 

}

}

}

return -1;

}

 

public String returnType(String str){

String result ="";

if("产品".equals(str)){

result ="1";

}else if("功能、性能".equals(str)){

result ="2";

}else if("市场".equals(str)){

result ="3";

}else if("体验".equals(str)){

result ="4";

}else if("质量".equals(str)){

result ="5";

}else if("其它".equals(str)){

result ="6";

}else{

result ="7";

}

 

return result;

 

}

4、模板

月份 地区 分类 关键字 信息反馈 备注1 备注2 建议-反馈
2015-10 福建 市场 第三方        
2015-10 福建 市场 行业        

 

分享到:
评论

相关推荐

    利用POI解析excel并存入数据库demo

    在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...

    定时读取excel更新到数据库

    在IT行业中,定时读取Excel更新到数据库是一项常见的任务,特别是在数据管理、数据分析或业务自动化等领域。本场景中,我们使用的Excel版本是2003,这是一个较早的版本,但依然广泛应用于许多组织。以下将详细介绍...

    POI读取Excel带格式数据

    本篇将详细讲解如何使用Apache POI读取Excel文件中的带格式数据。 首先,理解Apache POI的基本架构至关重要。POI提供了HSSF(Horrible Spreadsheet Format)用于处理老版本的.xls文件,而XSSF用于处理较新的.xlsx...

    java的poi技术读取Excel数据到MySQL

    接下来,我们创建一个Java类,用POI读取Excel文件。首先打开文件并创建一个Workbook对象,然后获取第一个Sheet,接着遍历每个Row和Cell以获取数据: ```java import org.apache.poi.ss.usermodel.*; import org....

    如何操作Excel读取数据导入DB2数据库

    技术要点1:POI读取Excel POI(Poor Obfuscation Implementation)是一个Java库,用于读取和写入Microsoft Office文件格式,包括Excel、Word和PowerPoint等。POI提供了对Excel文件的读取和写入功能,可以读取Excel...

    数据导入到excel和读取excel数据到数据库

    5. Python库:Python提供了pandas、openpyxl、xlrd/xlwt等库,可以方便地读取Excel数据并使用pandas DataFrame操作,再通过SQLAlchemy或pyodbc等工具将数据写入数据库。 6. 自定义应用程序:开发基于C#、Java或其他...

    使用POI技术读取Excel中数据,比对,并将比对结果存入Excel

    本篇文章将深入探讨如何利用POI技术读取Excel中的数据,进行比对,并将比对结果存储回Excel。 首先,我们需要在项目中引入Apache POI库。通常,通过Maven或Gradle这样的构建工具添加依赖即可: ```xml &lt;!-- Maven ...

    Java 使用poi导入excel 并使用xml做数据验证

    使用POI读取Excel数据的基本步骤如下: 1. 加载Excel文件:使用`WorkbookFactory.create()`方法创建一个`Workbook`实例。 2. 获取工作表:通过`Workbook`对象的`getSheetAt()`或`createSheet()`方法获取或创建工作...

    poi读取excel传入数据库代码

    本示例将详细讲解如何使用Apache POI库来读取Excel数据,并将其存储到数据库中。在这个过程中,我们将涉及到日期、字符串和整型数据的转换。 首先,确保已添加Apache POI依赖到你的项目中。在Maven项目中,可以在...

    poi作excel导入数据库

    标题中的“poi作excel导入数据库”指的是使用Apache POI库来读取Excel文件,并将数据存储到数据库中。Apache POI是Java平台上的一个开源项目,它提供了处理Microsoft Office格式文档的能力,包括Excel(.xls和.xlsx...

    poi 操作excel模板

    在Java开发中,POI库被广泛用于生成、修改和读取Excel文档。本篇将深入探讨如何利用Apache POI来操作Excel模板,以及如何读取数据并将其填充到新生成的文件中,最终提供下载。 首先,你需要在项目中引入Apache POI...

    excel表导入数据库 数据库导出excel(idea平台)

    1. 使用Apache POI读取Excel文件,遍历每一行每一列,将数据存储到Java对象中。 2. 创建JDBC连接,与数据库建立通信。这通常涉及到设置数据库URL、用户名、密码等信息。 3. 预编译SQL语句,根据Excel中的数据生成...

    Java用poi读取excel文件.pdf

    Java 使用 Apache POI 读取 Excel 文件是一种常见的数据处理任务,尤其在数据分析、报表生成以及自动化测试等场景中。Apache POI 是一个流行的开源库,它允许开发者在 Java 应用程序中创建、修改和显示 Microsoft ...

    Java读取txt数据入数据库然后读出使用POI创建excel

    在Java编程中,将TXT文件...以上就是关于"Java读取txt数据入数据库然后读出使用POI创建excel"的知识点,希望对你有所帮助。这个过程中需要注意的是数据的正确性、异常处理以及资源的及时关闭,确保程序的健壮性和效率。

    ssm通过POI技术把excel数据导入mysql

    在服务层,我们可以编写逻辑来读取Excel文件,然后调用DAO层的方法将数据插入MySQL数据库。 以下是具体步骤: 1. **读取Excel文件**:使用POI,创建一个`Workbook`对象,根据Excel文件类型选择`HSSFWorkbook`或`...

    SpringBootMybatis+poi+Thymeleaf实现excel文件数据导入到数据库以及从数据库将数据导出成excel.zip

    在本项目中,主要使用POI来处理Excel文件,读取数据并将其导入到数据库,或者从数据库中导出数据到Excel文件。 4. **Thymeleaf**: Thymeleaf是一个现代的服务器端Java模板引擎,可以处理HTML、XML、JavaScript、CSS...

    C++实现从TXT或Excel读取数据写入数据库小工具

    在这个项目中,我们有一个名为"C++实现从TXT或Excel读取数据写入数据库小工具"的实用程序,它利用C++编程语言来实现数据的读取和存储功能。这个工具能够帮助开发者高效地处理来自文本文件(如TXT)和电子表格文件...

    poi读取excel文件的完美jar包

    本教程将详细介绍如何使用Apache POI读取Excel文件,并提供一个适合导入数据库的解决方案。 首先,Apache POI提供了一个名为`HSSFWorkbook`的类,用于处理Excel的`.xls`格式(Excel 97-2007格式),而`XSSFWorkbook...

    spring3.0 MVC Poi操作excel批量导入数据库和导出数据

    3. **数据验证与转换**: 在读取数据后,我们可能需要进行数据验证(如非空检查、类型匹配等)和转换(如日期格式化、数字处理等),确保数据符合数据库的存储要求。 4. **批量插入数据库**: 为了提高性能,通常不...

    POI解析Excel,最高支持2010版本的Excel导入数据库

    通过以上知识,开发者可以构建一个程序,读取Excel文件,利用Apache POI和XMLBeans解析数据,然后借助JDBC将数据导入到任何支持的数据库系统中。这在数据迁移、报表处理或数据分析场景中非常常见。

Global site tag (gtag.js) - Google Analytics