当前位置:   article > 正文

java代码poi包实现excel文件末尾追加签名图片功能_java可以实现签名图片放到表格中的指定位置吗

java可以实现签名图片放到表格中的指定位置吗

功能描述:

在已有的excel中末行位置追加审批链岗位及对应审批人的签名

功能实现:

  1. package org.example;
  2. import org.apache.poi.ss.usermodel.*;
  3. import org.apache.poi.util.IOUtils;
  4. import org.apache.poi.xssf.usermodel.*;
  5. import java.io.*;
  6. public class excelImageTest {
  7. public static void main(String[] args) throws IOException {
  8. // 打开文件流
  9. FileInputStream fileInputStream = new FileInputStream("C:/Users/A.xlsx");
  10. // 创建工作簿对象
  11. Workbook workbook = new XSSFWorkbook(fileInputStream);
  12. // 创建工作表
  13. Sheet sheet = workbook.getSheetAt(0);
  14. // 读取最后一行的行号,以获取空行数
  15. int emptyRowCount = 0;
  16. for (int i = 0; i >= 0; i++) { // 从最后一行开始向前遍历所有行
  17. Row row = sheet.getRow(i); // 获取第i行对象
  18. if (row == null || row.getPhysicalNumberOfCells() == 0) { // 如果该行是空行或没有单元格,则增加空行计数器
  19. emptyRowCount = i;
  20. break;
  21. }
  22. }
  23. int physicalNumberOfCells = sheet.getRow(0).getPhysicalNumberOfCells();
  24. System.out.println(physicalNumberOfCells);
  25. for (int i = physicalNumberOfCells ; i < 5*2; i++) {
  26. sheet.setColumnWidth(i,sheet.getColumnWidth(0));
  27. }
  28. // 创建行
  29. Row row = sheet.createRow(emptyRowCount + 1);
  30. for (int i = 0; i < 5; i++) {
  31. // 创建单元格并设置值
  32. Cell cell1 = row.createCell(i*2);
  33. cell1.setCellValue("部门主要负责人");
  34. // 创建单元格并设置值
  35. Cell cell = row.createCell(i*2+1);
  36. // 读取图片文件并获取输入流
  37. InputStream inputStream = new FileInputStream("C:/Users/chens/Pictures/Saved Pictures/5fce7df964894735be9a0e11ca112068.png");
  38. byte[] bytes = IOUtils.toByteArray(inputStream);
  39. int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG);
  40. // 创建图片数据区域
  41. CreationHelper helper = workbook.getCreationHelper();
  42. Drawing drawing = sheet.createDrawingPatriarch();
  43. ClientAnchor anchor = helper.createClientAnchor();
  44. anchor.setCol1(cell.getColumnIndex());
  45. anchor.setRow1(cell.getRowIndex());
  46. Picture pict = drawing.createPicture(anchor, pictureIdx);
  47. // 根据需要调整图片大小
  48. pict.resize(0.8,2.618);
  49. }
  50. // 写入到文件
  51. FileOutputStream fileOut = new FileOutputStream("C:/Users/B.xlsx");
  52. workbook.write(fileOut);
  53. fileOut.close();
  54. fileInputStream.close();
  55. }
  56. }

功能实现效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/860837
推荐阅读
相关标签
  

闽ICP备14008679号