java excel导出及打印设置

代码如下:
 HSSFWorkbook wb = new HSSFWorkbook();//创建工作簿
 HSSFSheet sheet = wb.createSheet("");/创建sheet
 /*可以创建多个sheet
 workbook.setSheetName(sheetNum, sheetTitle,
 HSSFWorkbook.ENCODING_UTF_16);
 */
     sheet.setDefaultColumnWidth(20); // 默认列宽
    // sheet.setDefaultRowHeight((short)15);//默认行
     //sheet.setDefaultRowHeightInPoints((short)15)
     HSSFPrintSetup ps = sheet.getPrintSetup();

 //调整列宽的时候实际大小加上0.72在乘以256,本文以第一列作为展示
 sheet.setColumnWidth(0,(int)((28.14+0.72)* 256));
//设置字体样式 
 HSSFFont font = wb.createFont();
     font.setFontName("宋体");
     font.setFontHeightInPoints((short) 18);// 设置字体大小
     font.setColor(HSSFColor.BLACK.index); //字体颜色
     font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//加粗
//设置单元格样式
 HSSFCellStyle redcontentStyle = wb.createCellStyle(); // 内容样式
  redcontentStyle.setFont(redfontContent);
  redcontentStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
  redcontentStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);// 水平居中
  redcontentStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 下边框
  redcontentStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);// 左边框
  redcontentStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);// 上边框
  redcontentStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);// 右边框
  redcontentStyle.setWrapText(true);//自动换行
  redcontentStyle.setFillForegroundColor(IndexedColors.RED.getIndex());
  redcontentStyle.setFillPattern((short)1);
  //redcontentStyle.setFillForegroundColor(HSSFColor.RED.index);//背景色

  //合并单元格   依次是合并的第一行,最后一 行,第一列,最后一列
     sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 5));
     
           //第一行依次创建需要的
            HSSFRow row = sheet.createRow(0);//第一个行
            row.setHeightInPoints((float)20.25);//设置行高
            HSSFCell cell_1_1 = row.createCell(0);//第一个单元格
            cell_1_1.setCellValue("");//值
            cell_1_1.setCellStyle(headStyle);//样式

 

有时候可能版本不一样,可以根据后缀判断:

    //根据后缀名判断Excel是03版还是07版

           if(suffix.equalsIgnoreCase(".xls")){
                wb=new HSSFWorkbook(stream);
                sheet = wb.getSheetAt(0);
             
            } 

           if(suffix.equalsIgnoreCase(".xlsx")){
                wb=new XSSFWorkbook(stream);
                sheet = wb.getSheetAt(0);
        }

我这边客户反映打印有问题,会打印好几份,如果是一份,需要如下设置

当然如果数量比较多,可已在代码中设置如下

       HSSFPrintSetup ps = sheet.getPrintSetup();
            ps.setLandscape(true); // 打印方向,true:横向,false:纵向
            ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); //纸张
            sheet.setMargin(HSSFSheet.BottomMargin,( double ) 0.5 );// 页边距(下)
            sheet.setMargin(HSSFSheet.LeftMargin,( double ) 0.1 );// 页边距(左)
            sheet.setMargin(HSSFSheet.RightMargin,( double ) 0.1 );// 页边距(右)
            sheet.setMargin(HSSFSheet.TopMargin,( double ) 0.5 );// 页边距(上)
            sheet.setHorizontallyCenter(true);//设置打印页面为水平居中
            sheet.setVerticallyCenter(true);//设置打印页面为垂直居中使用POI输出Excel时打印页面 
 // 的设置 - TOUGHGUYNEU - @EXPLORER使用POI输出Excel时打印页面的设置 - TOUGHGUYNEU - @EXPLORER

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值