`

POI 实现Excel 导入导出

阅读更多

 

POI 实现Excel 导入导出【转载】

自己到apache 下载poi.jar 这里不说了 
先写 JDBC 链接语句吧

 

public class DBConnection {  
  
    private String classString="com.mysql.jdbc.Driver";  
    private String username="root";  
    private String password="123";  
    private String url="jdbc:mysql://localhost:3306/books?&characterEncoding=utf-8";  
    private Connection con=null;  
  
    public Connection getConnection(){  
       try {  
        Class.forName(classString);  
        con=DriverManager.getConnection(url,username,password);  
       } catch (ClassNotFoundException e) {  
        e.printStackTrace();  
       } catch (SQLException e) {  
        e.printStackTrace();  
       }  
       return con;  
    }  
}  

 --------------------------------------------- 

导入数据库: 
我这里数据库表很简单  字段(id,userName,password)。 
注意: *.xls 文件 数据必须从B2开始 。下面的写法我也没去多判断了,只写核心。呵呵。 

 

private Connection con;  
    private DBConnection db;  
    private PreparedStatement pst;  
    private String filePath="d:\\abcdef.xls";  
      
    public boolean insertDB() throws java.text.ParseException{  
            
           boolean flag=true;  
           db=new DBConnection();  
           con=db.getConnection();  
           try {  
            //文件流指向excel文件  
            FileInputStream fin=new FileInputStream(filePath);  
            HSSFWorkbook workbook=new HSSFWorkbook(fin); //创建工作薄  
            HSSFSheet sheet=workbook.getSheetAt(0); //得到工作表  
            HSSFRow row=null; //对应excel的行  
            HSSFCell cell=null; //对应excel的列  
             
            int totalRow=sheet.getLastRowNum(); //得到excel的总记录条数  
            //以下的字段一一对应数据库表的字段  
            String userName="";  
            String password="";  
            Date bookDate=null;  
            
            String sql="insert into user(userName,password) values(?,?)";   
             
            for(int i=1;i<=totalRow;i++){  
             row=sheet.getRow(i);  
             cell=row.getCell((short) 1);  
             userName=cell.getStringCellValue().toString();  
               
             cell=row.getCell((short) 2);  
             password=cell.getStringCellValue().toString();  
               
             cell=row.getCell((short) 3);  
             //格式化字符串时间  
           //  SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");  
           //  bookDate=new //Date((format.parse(cell.getStringCellValue().toString())).getTime());  
              
             pst=con.prepareStatement(sql);  
             pst.setString(1,userName);  
             pst.setString(2,password);  
              
             pst.execute();  
            }  
           } catch (FileNotFoundException e) {  
            flag=false;  
            e.printStackTrace();  
           } catch(IOException ex){  
            flag=false;  
            ex.printStackTrace();  
           } catch(SQLException exx){  
            flag=false;  
            exx.printStackTrace();  
           } catch(ParseException exxx){  
            exxx.printStackTrace();  
           }finally{  
            try {  
                if(pst !=null){  
                    pst.close();  
                    con.close();  
                }  
            } catch (SQLException e) {  
             e.printStackTrace();  
            }  
           }  
           return flag;  
        }  

 ----------------------------------------------------- 

从数据库导出到Excel: 
这里我直接在内存中创建一个输出流对象。省去读写硬盘的麻烦!

 

public InputStream getInputStream(){  
  HSSFWorkbook wb = new HSSFWorkbook();  
  HSSFSheet sheet = wb.createSheet("sheet1");  
    
                HSSFRow row = sheet.createRow(0);  
        HSSFCell cell = row.createCell((short) 0);  
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
        cell.setCellValue("序号");  
  
        cell = row.createCell((short) 1);  
        cell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置字符编码  
        cell.setCellValue("姓名");  
          
        cell = row.createCell((short) 2);  
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
        cell.setCellValue("密码");  
          
        List<Entity> listrepot=dao.getAllEntity(); //从数据库中获取数据  
  
        for (int i = 1; i <= listrepot.size(); ++i){  
          Entity  rep= listrepot.get(i-1);  
            
           row = sheet.createRow(i + 1);  
            cell = row.createCell((short) 0);  
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
            cell.setCellValue(i);  
  
            cell = row.createCell((short) 1);  
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
            cell.setCellValue(rep.getUserName());  
  
            cell = row.createCell((short) 2);  
            cell.setEncoding(HSSFCell.ENCODING_UTF_16);  
                    cell.setCellValue(rep.getPassword());  
  
               }  
            //这是核心了 直接在内存中创建 返回OK  
            ByteArrayOutputStream os=new ByteArrayOutputStream();  
        try {  
            wb.write(os);  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        byte[] content=os.toByteArray();  
        InputStream is=new ByteArrayInputStream(content);  
          
        return is;  
  
}  
分享到:
评论

相关推荐

    java_poi实现excel导入导出

    Java POI 实现 Excel 导入导出 Java POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Excel 文件。在本文中,我们将详细介绍如何使用 Java POI 实现 Excel 导入导出功能。 1. 什么是 Java ...

    POI实现excel导入导出

    在本文中,我们将深入探讨如何使用Apache POI库实现Excel的导入和导出功能,这对于处理大量数据和自动化办公流程非常有用。 首先,让我们了解一下Apache POI的核心组件HSSF(Horrible Spreadsheet Format)和XSSF...

    Java poi 实现excel导入导出

    在提供的“java-excel导入导出”压缩包中,可能包含了示例代码、说明文档以及测试数据,可以帮助初学者快速理解和使用Java POI进行Excel操作。通过学习和实践这些示例,你可以掌握Java POI库的基本用法,并能灵活...

    JXL、POI实现Excel导入导出

    以上就是关于使用JXL和Apache POI实现Excel导入导出的基本知识。根据实际需求,你可以结合这两个库的功能,灵活地处理各种Excel文件操作。在实际项目中,通常会根据性能、功能需求以及文件兼容性等因素选择适合的库...

    POI实现Excel导入导出并附带加载进度条

    总之,这个项目是一个完整的Java解决方案,用于处理Excel文件的导入导出,同时具备用户友好的进度条显示。它利用了Apache POI的强大功能,结合maven的依赖管理,以及可能的GUI组件,提供了高效且直观的数据操作体验...

    springboot+mybatis+poi 实现excel导入导出

    通过以上步骤,我们就可以在SpringBoot应用中实现基于MyBatis和Apache POI的Excel导入导出功能。这在数据分析、报表生成、数据交换等场景中非常实用,大大提高了工作效率。同时,这个过程也涉及到文件I/O操作、数据...

    POI实现Excel导入导出

    通过上述步骤,我们可以实现一个基本的Excel导入导出功能。在实际应用中,可能还需要结合数据库操作、数据验证、错误处理等复杂逻辑,来构建更完善的系统。Apache POI的强大之处在于其灵活性和全面性,能够满足各种...

    POI实现excel导入导出及解析

    二、Excel导入 1. 创建Workbook对象:首先,你需要创建一个Workbook对象,这相当于Excel文件中的一个工作簿。对于XLS文件,使用HSSFWorkbook;对于XLSX文件,使用XSSFWorkbook。 ```java FileInputStream fis = new ...

    POI实现Excel导入导出实例和jar

    2. **POI实现Excel导入** - **创建Workbook对象**:导入Excel的第一步是创建一个Workbook对象,这代表了整个Excel工作簿。 - **创建Sheet对象**:Workbook对象包含多个Sheet,每个Sheet对应Excel中的一个工作表。 ...

    java poi操作excel批量导入导出项目需要的jar包

    Java中的Apache POI库是处理...以上是Java POI操作Excel的基本概念和关键点,理解并熟练运用这些知识点,你就可以在项目中高效地进行批量导入导出操作了。记住,持续学习和适应新的库版本是保持技术领先的关键。

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件...通过正确理解和使用POI库,你可以轻松地实现数据的导入导出,提升工作效率。记得在项目中引入正确的jar包,以确保所有功能的正常运行。

    ssh注解方式+poi实现Excel导入导出

    本人实际项目功能简化出来的小功能,由三大框架ssh构成,使用的是注解方式。项目中去除了连接数据库那一块,如需数据库操作,请进行相应修改。使用方式:直接用eclipse把项目导入进去,配置Tomcat7.0运行即可

    Springboot+Poi实现Excel的导入导出

    本项目结合了Spring Boot、MyBatis、Apache POI和MySQL,实现了Excel数据的导入导出功能,这对于数据处理和分析尤其有用。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Spring Boot以其“约定优于配置”...

    使用JSP+jqueryUI+java Servlet通过Apache POI实现Excel导入导出

    总的来说,结合JSP、jQuery UI、Servlet和Apache POI,我们可以构建一个功能完备且用户友好的Excel导入导出系统,满足企业级应用的需求。这个过程既锻炼了前端交互设计,也加深了对后端数据处理和文件操作的理解。

    Java POI EXCEL导入导出

    Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出...

    POI数据Excel导入导出jar

    该文件中包含了所有java项目中针对excel导入导出所需的jar包集合。 -------------------------------------- 将该zip解压后,将jar包加入到自己的项目中,可以直接通过poi的api在excel和项目数据进行导入导出。 应用...

    POI操作excel的导入与导出

    标题 "POI操作excel的导入与导出" 涉及到的是Apache POI库,一个广泛用于Java平台上的Microsoft Office文档处理库。这个库允许开发者读取、创建和修改Excel(.xls和.xlsx)文件。这篇博文可能是介绍如何利用POI进行...

    使用Springboot实现excel的导入导出

    在Spring Boot中实现Excel的导入导出可以通过POI库来实现,POI是一个开源的Java库,用于处理Microsoft Office格式文件,包括Excel。一个简单的示例,演示如何在Spring Boot项目中使用POI来实现Excel的导入导出功能。...

Global site tag (gtag.js) - Google Analytics