Excel文件导入导出

   
/**
     *
导入Excel文件数量
     *

     * @param
file 将在导入的Excel文件
     * @param
fileCheckKeyWord 用于剖断导入文本是不是准确的要紧字符串
     * @param
keyX 用于决断导入文本是还是不是科学的第一字符串所在的x坐标地方
     * @param
keyY 用于判别导入文本是不是科学的重大字符串所在的y坐标位置
     * @param
startRow 导入数据开首行数
     * @param
startLine 导入数据开端列数
     *

     * @return
List《Object[]》
     * @throws
Exception
    
*/
    public
static List<Object[]> excelImport(File file, String
fileCheckKeyWord, int keyX, int keyY, int startRow, int startLine)
throws Exception{
      
 List<Object[]> dataList = new
ArrayList<Object[]>();
金沙网址,      
 InputStream inputStream = new FileInputStream(file);
      
 WorkbookSettings wbs = new WorkbookSettings();
      
 wbs.setSuppressWarnings(true);
        Workbook
book = Workbook.getWorkbook(inputStream, wbs);
        Sheet sh
= book.getSheet(0);
      
 //判别选拔excel文件是还是不是科学
        String
typeContent = sh.getCell(keyX, keyY).getContents().trim();
      
 if(!typeContent.equals(fileCheckKeyWord)){
          
 return dataList;
      
 }
      
 //行数
        int rows
= sh.getRows();
        if(rows
>= 6553陆){//高出 excel 0三最大行数
          
 return dataList;
      
 }
      
 //列数
        int
lines = sh.getColumns();
      
 //判定导入的数码是还是不是有误
      
 Object[] dataObjArr = null;
        for(int
i = startRow; i <= rows; i++){
          
 dataObjArr = new Object[lines – startLine + 1];
          
 for(int j = startLine; j <= lines; j++){
              
 String content = sh.getCell(j, i).getContents().trim();
              
 if(ComFun.strNull(content) && !content.trim().equals(“”)){
              
     dataObjArr[j – startLine] = content;
              
 } else {
              
     dataObjArr[j – startLine] = “”;
              
 }
          
 }
      
 }
        return
dataList;
    }

 

    /**
     * 导出EXCEL文件
     *
     * @param fileName 导出文件名
(为NULL时,文件名称依照时间戳生成)
     * @param headCellNames 尾部标题名称组
     * @param dataList 数据List,与参数headCellNames对应
     */
    public static void excelExport(String fileName,
            String[] headCellNames, List<Object[]> dataList)
throws IOException, WriteException {
        if(ComFun.strNull(dataList) && dataList.size() > 0){
            if(!ComFun.strNull(fileName)){
                fileName = DateFormatUtil.dateToStr(new Date(),
DateFormatUtil.TYPE4);
            }
            String[] cellNames = new String[headCellNames.length +
1];
            cellNames[0] = “序号”;
            for(int i=0; i<headCellNames.length; i++){
                cellNames[i+1] = headCellNames[i];
            }
            WritableWorkbook book = Workbook.createWorkbook(new
File(“C:\\ACjba\\fileDownload\\” + fileName + “.xls”));//
创立文件
            WritableSheet sheet = book.createSheet(fileName, 0);//
创制职业薄
            sheet.setName(fileName);
            sheet.getSettings().setVerticalFreeze(贰);// 冻结前两行
            /* 起初创办sheet第叁行 */
            // 标题字体、样式
            WritableFont titleFont = new
WritableFont(WritableFont.ARIAL, 12,
                    WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE,
                    Colour.BLACK);// 设置标题字体
            WritableCellFormat titleFormat = new
WritableCellFormat(titleFont);// 设置标题格式
            titleFormat.setAlignment(Alignment.CENTRE);
          
 titleFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
            // 合并单元格
            sheet.mergeCells(1, 0, cellNames.length, 0);
            // 设置行高
            sheet.setRowView(0, 800, false);// 40磅
            //
label精通为sheet中的单元格,此处在第三列0行参加钦赐内容、样式
            Label titleLabel = new Label(1, 0, fileName, titleFormat);
            // 将label出席到sheet中,第2行成立完毕
            sheet.addCell(titleLabel);
    
            /* 开首创办第1行 */
            // 表头字体、样式
            WritableFont cellFont = new WritableFont(WritableFont.ARIAL,
9,
                    WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE,
                    Colour.BLACK);
            WritableCellFormat cellFormat = new
WritableCellFormat(cellFont);
            // 设置自动换行
            cellFormat.setWrap(true);
            cellFormat.setAlignment(Alignment.CENTRE);
            cellFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
            cellFormat.setBorder(Border.ALL, BorderLineStyle.THIN,
Colour.BLACK);// 设置边框
            // 设置列宽
            for (int i = 1; i <= cellNames.length; i++) {
                sheet.setColumnView(i, 20);
                sheet.setRowView(1, 440);// 22磅
                sheet.addCell(new Label(i, 1, cellNames[i – 1],
cellFormat));
            }
    
            // 成立第三行
            sheet.setRowView(2, 440);// 22磅
            /* 循环制造传入会集(第肆行今后) */
            WritableFont bodyFont = new WritableFont(WritableFont.ARIAL,
9,
                    WritableFont.NO_BOLD, false,
UnderlineStyle.NO_UNDERLINE,
                    Colour.BLACK);
            WritableCellFormat bodyFormat = new
WritableCellFormat(bodyFont);
            // 设置自动换行
            bodyFormat.setWrap(true);
            bodyFormat.setAlignment(Alignment.CENTRE);
            bodyFormat.setVerticalAlignment(VerticalAlignment.CENTRE);
            bodyFormat.setBorder(Border.ALL, BorderLineStyle.THIN,
Colour.BLACK);// 设置边框
            int r = 2;
            for (int i=0;i<dataList.size();i++) {
                sheet.setRowView(r, 440);
                sheet.addCell(new Label(1, r, String.valueOf(r – 1),
bodyFormat));// 序号
                for(int j=2; j<cellNames.length+1; j++){
                    sheet.addCell(new Label(j, r,
String.valueOf(dataList.get(i)[j-2]), bodyFormat));
                }
                r++;
            }
            book.write();
            book.close();
        }
    }

相关文章