(java)客户端套打服务端Excel以及Word

需求:
在客户端可以连接默认打印机打印服务端文件
原始模板
EXCEL模板
开发思路:
1、根据模板生成新的文件,并保存至服务器
2、将生成的文件转化成html
3、客户端打印html文件

本来想用freemarker进行套打,但是不知道什么原因,生成的文件在转化过程中一直报类型转换异常,找了好多解决办法,但是都没办法解决,忘后来人解决!!!!!!!!!!!
最后没办法,只能有原始办法,对模板中的标签进行替换

第一步:根据模板生成新的文件

import org.apache.poi.hssf.usermodel.HSSFCell;
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.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class ExcelUtil {
   
  /**
   * 替换Excel2003模板文件内容
   * @param map
   *     需要替换的标签建筑队形式
   * @param  intPath
   *     Excel模板文件路径
   * @param outPath
   *     Excel生成文件路径
   */
  public static boolean replaceExcel2003Value(Map map, String intPath, String outPath) {
   
    boolean flag = true;
    try {
   
      FileInputStream fs = new FileInputStream(intPath);
      //EXCEL xlsx格式与xls格式用的类是不同的,xlsx用的是XSSFWorkbook
      HSSFWorkbook workbook = new HSSFWorkbook(fs);
      HSSFWorkbook wb = (HSSFWorkbook) workbook;
      HSSFSheet sheet;
      //由于个人使用是多sheet故获取excel对象后进行sheet遍历,分别对每个sheet里面的标签进行替换
      for (int j = 0; j < wb.getNumberOfSheets(); j++) {
   
        sheet = workbook.getSheetAt(j);
        Iterator rows = sheet.rowIterator();
        while (rows.hasNext()) {
   
          HSSFRow row = (HSSFRow) rows.next();
          if (row != null) {
   
            int num = row.getLastCellNum();
            for (int i = 0; i < num; i++) {
   
              HSSFCell cell = row.getCell(i);
              if (cell != null) {
   
                cell.setCellType(XSSFCell.CELL_TYPE_STRING);
              }
              if (cell == null || cell.getStringCellValue() == null) {
   
                continue;
              }
              String value = cell.getStringCellValue();
              if 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值