SpringBootエクスポートword(officeとwps対応)入出力ストリーム、1分で習得

3411 ワード

Javaのwordについてお話ししますと、その前にも多くの資料を調べて、多くの人に聞いたことがありますが、ネット上で見つけたリソースはすべてローカルにエクスポートされ、ローカルテンプレートを定義する必要があります.この方法はあまりにも限られていて、あまりお勧めしません.以前excelをエクスポートしたことがあるので、以前excelをエクスポートする方法でwordをどのようにエクスポートするかを考えて、最後に実現しました.コードを参照:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;

/**
 *@Author jcc
 *@Description word  
 *@Date 2019/4/29 14:59
 **/
public class WordUtil {
    public void exportWord(XWPFDocument document, HttpServletResponse response,String fileName) throws Exception{
        response.setHeader("Content-Disposition","attachment;fileName="+ fileName+".docx");
        response.setContentType("application/msword");
        OutputStream os = response.getOutputStream();
        document.write(os);
        os.flush();
        os.close();
    }

}


これはエクスポートされたツールクラスであり、自分でexcelをコピーして書いたものでもあり、直接使用できますが、poi依存をインポートすることを前提としています.
     
        
            com.deepoove
            poi-tl
            0.0.3
        


そして自分のデータを転送することができます
 @GetMapping("PoiWord")
    @ApiOperation(value = "  word",notes = "  word")
    public void PoiWord(String entityId, String structId, String pStructureId, HttpServletResponse response){
        XWPFDocument document= new XWPFDocument();
        try {
        //               
            List oralHisStructureTexts=iOralHisStructureTextService.getOralHisStructureText(structId,pStructureId,entityId);
            //        ,     ,       set
            for (OralHisStructureText oralHisStructureText:oralHisStructureTexts){
                //    
                XWPFParagraph titleParagraph = document.createParagraph();
                //      
                titleParagraph.setAlignment(ParagraphAlignment.CENTER);

                //   
                XWPFRun titleParagraphRun = titleParagraph.createRun();
                //             document      
                titleParagraphRun.setText(oralHisStructureText.getStructureName());
                //       
                titleParagraphRun.setColor("000000");
                //       
                titleParagraphRun.setFontSize(15);

                //  
                XWPFParagraph firstParagraph = document.createParagraph();
                XWPFRun run = firstParagraph.createRun();
                run.setText(oralHisStructureText.getContent());
                run.setColor("000000");
                run.setFontSize(10);
                //  
                XWPFParagraph paragraph1 = document.createParagraph();
                XWPFRun paragraphRun1 = paragraph1.createRun();
                paragraphRun1.setText("\r");
            }
            SimpleDateFormat sdf = new SimpleDateFormat("MMddHHmmss");
            String fileName = new String("word  ".getBytes("UTF-8"), "iso-8859-1");
            new WordUtil().exportWord(document,response,fileName+sdf.format(new Date()));
        } catch (Exception e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        System.out.println("    !!!!");
        }