zoukankan      html  css  js  c++  java
  • ExcelUtil

    package com.java1234.util;
    
    import java.io.InputStream;
    import java.sql.ResultSet;
    
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    import org.apache.poi.ss.usermodel.Row;
    import org.apache.poi.ss.usermodel.Sheet;
    import org.apache.poi.ss.usermodel.Workbook;
    
    public class ExcelUtil {
    
        public static void fillExcelData(ResultSet rs,Workbook wb,String[] headers)throws Exception{
            int rowIndex=0;
            Sheet sheet=wb.createSheet();
            Row row=sheet.createRow(rowIndex++);
            for(int i=0;i<headers.length;i++){
                row.createCell(i).setCellValue(headers[i]);
            }
            while(rs.next()){
                row=sheet.createRow(rowIndex++);
                for(int i=0;i<headers.length;i++){
                    row.createCell(i).setCellValue(rs.getObject(i+1).toString());
                }
            }
        }
        
        public static Workbook fillExcelDataWithTemplate(ResultSet rs,String templateFileName)throws Exception{
            InputStream inp=ExcelUtil.class.getResourceAsStream("/com/java1234/template/"+templateFileName);
            POIFSFileSystem fs=new POIFSFileSystem(inp);
            Workbook wb=new HSSFWorkbook(fs);
            Sheet sheet=wb.getSheetAt(0);
            // 获取列数
            int cellNums=sheet.getRow(0).getLastCellNum();
            int rowIndex=1;
            while(rs.next()){
                Row row=sheet.createRow(rowIndex++);
                for(int i=0;i<cellNums;i++){
                    row.createCell(i).setCellValue(rs.getObject(i+1).toString());
                }
            }
            return wb;
        }
        
        public static String formatCell(HSSFCell hssfCell){
            if(hssfCell==null){
                return "";
            }else{
                if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
                    return String.valueOf(hssfCell.getBooleanCellValue());
                }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
                    return String.valueOf(hssfCell.getNumericCellValue());
                }else{
                    return String.valueOf(hssfCell.getStringCellValue());
                }
            }
        }
    }
  • 相关阅读:
    栈和堆的区别【转】
    C++虚函数表解析(转)
    C++编码规范(转)
    全局变量的声明和定义 以及dll中全局变量的导出
    Sizeof与Strlen的区别与联系.
    利用事件对象实现线程同步
    创建互斥对象同步线程
    MFC GDI笔记 转
    ClientToScreen( )和ScreenToClient( )
    Visual C++线程同步技术剖析
  • 原文地址:https://www.cnblogs.com/duanwandao/p/9363953.html
Copyright © 2011-2022 走看看