java操作excel实现图片水印

xiaoxiao2021-02-28  105

下载链接:http://download.csdn.net/detail/u012102536/9834232

jar包

java操作excel实现图片水印是不可能实现的  不过可以先添加背景图,再在背景图上填写代码

模板一:只有背景图

模板二:只有数据

模板三:二者合并

代码的一部分:

package com.ekingstar.zcgl.bean.waterPrint; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class copy2 {     public static void main(String[] args) throws Exception {        File file = new File("d:\\CW_JFKZXSJ.xls");        String[][] result = getData(file, 1);        int rowLength = result.length;        for(int i=0;i<rowLength;i++) {            for(int j=0;j<result[i].length;j++) {               System.out.print(result[i][j]+"\t\t");            }            System.out.println();        }                     }     /**      * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行      * @param file 读取数据的源Excel      * @param ignoreRows 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1      * @return 读出的Excel中数据的内容      * @throws FileNotFoundException      * @throws IOException      */     public static String[][] getData(File file, int ignoreRows)            throws FileNotFoundException, IOException {        List<String[]> result = new ArrayList<String[]>();        int rowSize = 0;        BufferedInputStream in = new BufferedInputStream(new FileInputStream(               file));        // 打开HSSFWorkbook        POIFSFileSystem fs = new POIFSFileSystem(in);        HSSFWorkbook wb = new HSSFWorkbook(fs);                        String filename0="d://test99.xls";                HSSFWorkbook wb1 = new HSSFWorkbook(new FileInputStream(new File(filename0)));                                        HSSFCell cell = null;        for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {            HSSFSheet st = wb.getSheetAt(sheetIndex);            HSSFSheet st1 = wb1.getSheetAt(sheetIndex);            // 第一行为标题,不取            for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {               HSSFRow row = st.getRow(rowIndex);               HSSFRow row1 = st1.getRow(rowIndex);               if (row == null) {                   continue;               }               int tempRowSize = row.getLastCellNum() + 1;               if (tempRowSize > rowSize) {                   rowSize = tempRowSize;               }               String[] values = new String[rowSize];               Arrays.fill(values, "");               boolean hasValue = false;               for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {                   String value = "";                   cell = row.getCell(columnIndex);                   if (cell != null) {                      // 注意:一定要设成这个,否则可能会出现乱码                      cell.setEncoding(HSSFCell.ENCODING_UTF_16);                      switch (cell.getCellType()) {                      case HSSFCell.CELL_TYPE_STRING:                          value = cell.getStringCellValue();                          break;                      case HSSFCell.CELL_TYPE_NUMERIC:                          if (HSSFDateUtil.isCellDateFormatted(cell)) {                             Date date = cell.getDateCellValue();                             if (date != null) {                                 value = new SimpleDateFormat("yyyy-MM-dd")                                        .format(date);                             } else {                                 value = "";                             }                          } else {                             value = new DecimalFormat("0").format(cell                                    .getNumericCellValue());                          }                          break;                      case HSSFCell.CELL_TYPE_FORMULA:                          // 导入时如果为公式生成的数据则无值                          if (!cell.getStringCellValue().equals("")) {                             value = cell.getStringCellValue();                          } else {                             value = cell.getNumericCellValue() + "";                          }  。。。。。。

请下载我的资源    就一个java文件

转载请注明原文地址: https://www.6miu.com/read-19687.html

最新回复(0)