• 使用POI的HWPF操作word(未解决中文乱码问题)


    public class TestPoi extends HttpServlet
    {

     public void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException
     {
      File file = new File("D:\\b.doc");
      try
      {
       FileInputStream in = new FileInputStream("D:\\b.doc");
       // HWPFFileSystem hwpfsys = new HWPFFileSystem();
       // hwpfsys.getStream("d://b.doc");
       POIFSFileSystem pfs = new POIFSFileSystem(in);
       HWPFDocument hwpf = new HWPFDocument(pfs);
       // hwpf.write(hwpfsys.getStream("D://e.doc"));
       // Range range = new Range(0, (int) file.length(), hwpf);
       Range range = hwpf.getRange();
       StyleSheet styleSheet = hwpf.getStyleSheet();

       TableIterator it = new TableIterator(range);
    //遍历一个DOC中的所有表格
       while (it.hasNext())
       {
        Table tb = (Table) it.next();

      //遍历表格的行
        for (int i = 0; i < tb.numRows(); i++)
        {
         TableRow tr = tb.getRow(i);
    //遍历表格的列
         for (int j = 0; j < tr.numCells(); j++)
         {
        //往表格中插入数据 
         TableCell td = tr.getCell(j);
          String text = "第" + i + "行第" + j + "列";
          int p = td.numParagraphs();
          Paragraph para = td.getParagraph(p);
          ParagraphProperties pp = new ParagraphProperties();
          para.insertBefore(text);
         }
        }
       }
    //在表格外面插入内容  
     CharacterProperties cp = new CharacterProperties();
       cp.setBold(true);
       cp.setCharacterSpacing(10);
       cp.setChse(cp.SPRM_CHARSCALE);
       cp.setCapitalized(true);
       int p = range.numParagraphs();
       Paragraph para = range.getParagraph(p - 1);
       para.insertAfter("test poi successful!", cp);
       para.insertAfter("测试成功", cp);
       response.setContentType("application/vnd.ms-word");
       response.setHeader("Content-disposition", "attachment;filename=e.doc");
       OutputStream out = response.getOutputStream();
       hwpf.write(out);
       out.close();
      }
      catch (Exception ex)
      {
       ex.printStackTrace();
      }
     }

     public void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException
     {
      doGet(request, response);
     }

    }
  • 相关阅读:
    SQL SERVER 性能优化四: 创建分区表
    SQL SERVER 性能优化一: 数据库中几百万数据查询优化
    SQL SERVER 性能优化二: 数据库初始值大小及增长方式设置
    C++连接SQL SERVER 数据库方式
    利用作业定时收缩SQL SERVER数据库
    jQuery easyUI datagrid 增加求和统计行
    jquery easyui DataGrid 数据表格 属性
    jQuery easyui中获取datagrid某一列的值之和
    Maven + Springboot + redis 配置
    mac os Catalina beta Jetbrains idea闪退解决方案
  • 原文地址:https://www.cnblogs.com/monica/p/1604702.html
Copyright © 2020-2023  润新知