Java从数据库导出Excel
博客专区 > Terell 的博客 > 博客详情
Java从数据库导出Excel
Terell 发表于9个月前
Java从数据库导出Excel
  • 发表于 9个月前
  • 阅读 13
  • 收藏 1
  • 点赞 0
  • 评论 0

1、导入jar包(POI,stax,xmlbeans   ,dom4j)

2、代码如下:

public class Export  {
    private  CrawlerDAO cd=null;
    public void exportAll(List li){
        File targetFile = null;
        try{
            List <String> list =li;
            //创建工作簿 XSSF->就是指2010版本的Excel
            XSSFWorkbook wb = new XSSFWorkbook();
            //工作表
            XSSFSheet sheet = wb.createSheet("藏品征集信息");
            //标头行,0代表第一行
            XSSFRow header = sheet.createRow(0);
            //创建单元格,第一行第一列
            XSSFCell cell0 = header.createCell(0);
            cell0.setCellValue("内容");
            //设置列的宽度,getPhysicalNumberOfCells代表这一行有多少包含数据的列
            for(int i = 0 ; i < header.getPhysicalNumberOfCells() ; i++){
                sheet.setColumnWidth(i, 255 * 20);//他用的宽度单位是1/255个字符
            }
            header.setHeightInPoints(30);//行高30像素
            for(int i = 0 ; i < list.size() ; i++ ){//将结果进行输出
                String member=list.get(i);//遍历
                XSSFRow row = sheet.createRow(i+1);//生成新行保存数据
                row.setHeightInPoints(30);
                row.createCell(0).setCellValue(member);
                System.out.println("======"+i+"======");
            }
            String fileName = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
            targetFile = new File("e:/" + fileName + ".xlsx");
            FileOutputStream fos = new FileOutputStream(targetFile);
            wb.write(fos); //向指定文件写入
            fos.close();//释放资源
            wb.close();    
            System.out.println("==>文件读写完成<====>地址为:"+targetFile+"===");
        }catch(Exception e){
            e.printStackTrace();  
            throw new RuntimeException(e);
        }    
    }    
    public static void main(String[] args) throws Exception {
         CrawlerDAO cd =new CrawlerDAO();
         List <String> li=cd.findAll();
         Export ex=new Export();
         ex.exportAll(li);
    }
}

//DAO层操作数据库

public class CrawlerDAO  {
    public List<String> findAll() {
        List li=new ArrayList<String>();
        String cont;
        // 驱动程序名        
        String driver = "com.mysql.jdbc.Driver";  
        // URL指向要访问的数据库名world        
        String url = "jdbc:mysql://***?useUnicode=true&amp;characterEncoding=UTF-8";
        // MySQL配置时的用户名           
        String user = "***";           
        // MySQL配置时的密码          
        String password = "********";  
        try {               
            // 加载驱动程序        
            Class.forName(driver);  
            // 连续数据库       
            Connection conn = DriverManager.getConnection(url, user, password);  
            if(!conn.isClosed())          
            System.out.println("连接成功!");  
            // statement用来执行SQL语句             
            Statement statement = conn.createStatement();  
            // 要执行的SQL语句        
            String sql = "select * from zkxa_crawler";  
            // 结果集
            ResultSet rs=statement.executeQuery(sql);  
            while(rs.next())  {
                     cont= rs.getString("content");
                     li.add(cont);
                 }
            conn.close();
            return li;
        }catch(ClassNotFoundException e) {  
                System.out.println("Sorry,can`t find the Driver!,return null");
                return null;
        }catch(Exception e) {  
                System.out.println("return null");
                return null;
        }
    }
}

如有BUG或者需要jar包,加我微信!

共有 人打赏支持
粉丝 2
博文 17
码字总数 10150
×
Terell
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: