18.04.07~jxl生成excel(一)

设置页眉页脚,页边距

jxl.SheetSettings setting = writableSheet.getSettings();
setting.setScaleFactor(31); // 设置打印缩放比例
setting.setPrintTitlesRow(0, 10); //设置每页打印的表头(第几行到第几行)
setting.setTopMargin(1.5);//上边距
setting.setLeftMargin(0.8);// 左
setting.setRightMargin(0.3);// 右
setting.setBottomMargin(0.9);// 下
setting.setHeaderMargin(0.8);// 页眉
setting.setFooterMargin(0.8);// 页脚

HeaderFooter hf = new HeaderFooter();

// 设置打印页眉
setting.setHeader(hf);
Contents ct =hf.getLeft();
ct.append("共 ");
ct.appendTotalPages();
ct.append(" 页 第 ");
ct.appendPageNumber();
ct.append(" 页");
writableSheet.getSettings().setFooter(hf);

拷贝行

private void copyRow(WritableSheet writableSheet, Map<String, String> mergeCells, int from, int to)
          throws RowsExceededException, WriteException
        {
          writableSheet.insertRow(to);
          int columns = writableSheet.getColumns();
          for (int col = 0; col < columns; col++)
          {
            WritableCell writableCell = writableSheet
              .getWritableCell(col, from);
            WritableCell newWritableCell = writableCell.copyTo(col, to);
            writableSheet.addCell(newWritableCell);
            if (this.inListTagCells.get(writableSheet.getName() + "," + from + "," + col) != null)
            {
              cleanCellContents(newWritableCell);
              this.inListTagCells.put(writableSheet.getName() + "," + to + "," + col, "");
            }
          }
          Range[] mergedCell = writableSheet.getMergedCells();
          for (int i = 0; i < mergedCell.length; i++)
          {
            int x1 = mergedCell[i].getTopLeft().getRow();
            if (from == x1)
            {
              int y1 = mergedCell[i].getTopLeft().getColumn();
              int x2 = mergedCell[i].getBottomRight().getRow();
              int y2 = mergedCell[i].getBottomRight().getColumn();

              int newX1 = to;
              int newY1 = y1;
              int newX2 = newX1 + (x2 - x1);
              int newY2 = y2;

              String key = newX1 + "," + newY1 + "," + newX2 + "," + newY2;
              mergeCells.put(key, key);
              for (int ind = newX1; ind <= newX2; ind++) {
                setCell(writableSheet, mergeCells, ind, 0, "3");
              }
              for (int ind = newY1; ind <= newY2; ind++) {
                setCell(writableSheet, mergeCells, 0, ind, "4");
              }
            }
          }
        }

猜你喜欢

转载自blog.csdn.net/yw2567/article/details/79841667