word文档的导出

word文档的导出

word文档的导出

 @RequestMapping("/export")
  public void exports(HttpServletResponse response,/*参数*/) {

  //获取模板需要的数据
 Map<String, Object> parametersMap =exports(/*参数*/);/*返回的值是{name:"张三",age:"18",sex:"男",phone:"12345678912"}*/
  //如果数据为空进行初始化
  if (parametersMap == null) parametersMap = new HashMap<>();
  // 存储报表全部数据
  Map<String, Object> wordDataMap = new HashMap<String, Object>();
  wordDataMap.put("parametersMap", parametersMap);
  // 读取word模板---这里我是将文件的模板放在了resources/templates/fileTemplate的目录下面
  InputStream fileInputStream = null;
  try {
  Object file1 =null;
       try {
            //先查找物理文件,物理文件优先  BoardCard指的是模板的名称这里是根据路径进行查找
            File file = ResourceUtils.getFile("file:./templates/fileTemplate/" + "模板名称"+ ".docx");
            if (file.exists()){
                file1 =file;
            }else {
             ClassPathResource resFile = new ClassPathResource("templates/fileTemplate/" +  "模板名称"+ ".docx");
                if (resFile.isFile() && resFile.exists() && resFile.isReadable()){file1 =resFile.getFile();}                                         
                else {file1 =resFile.getInputStream();}
                
                   }
                   
             } catch (Exception e) {
            
         }

            // 设置浏览器以下载的方式处理该文件名
            String fileName = "下载后的文件名";
            //判断流类型
            if (file instanceof String)
                fileInputStream = new FileInputStream(new File(file.toString()));
            else if (file instanceof File) {
                fileInputStream = new FileInputStream((File) file);
            } else if (file instanceof InputStream) {
                fileInputStream = (InputStream) file;
            }
            //初始化模板名称
             WordTemplate template = new WordTemplate(fileInputStream);
            // 替换数据
            template.replaceDocument(wordDataMap);
            OutputStream os = response.getOutputStream();
            //设置响应头
            response.setCharacterEncoding("utf-8");
            response.setHeader("Content-Disposition", "attachment;filename=".concat(String.valueOf(URLEncoder.encode(fileName, "UTF-8"))));
            response.setContentType("application/msword");
            template.getDocument().write(os);

             } catch (Exception e) {
        
                                   }



}

模板如下:
在这里插入图片描述

结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABP (ASP.NET Boilerplate) 是一个流行的开源框架,提供了一些常用功能的实现,包括实体框架、用户认证、权限管理等。实现 Word 文档导出可以使用开源库 NPOI。 以下是基本的步骤: 1. 安装 NPOI 包。可以使用 NuGet 命令行工具,输入以下命令: ``` Install-Package NPOI ``` 2. 创建一个类,用于表示要导出的数据。 ``` public class MyData { public string Name { get; set; } public int Age { get; set; } //... } ``` 3. 创建一个方法,用于创建 Word 文档。在该方法中,使用 NPOI 创建一个新的文档,并将数据填充到表格中。 ``` using NPOI.XWPF.UserModel; using NPOI.OpenXmlFormats.Wordprocessing; public void ExportToWord(List<MyData> data) { // Create a new document from scratch XWPFDocument doc = new XWPFDocument(); // Create a table with headers XWPFTable table = doc.CreateTable(data.Count + 1, 2); table.GetRow(0).GetCell(0).SetText("Name"); table.GetRow(0).GetCell(1).SetText("Age"); // Fill in the data for (int i = 0; i < data.Count; i++) { table.GetRow(i + 1).GetCell(0).SetText(data[i].Name); table.GetRow(i + 1).GetCell(1).SetText(data[i].Age.ToString()); } // Save the document to a file FileStream file = new FileStream("output.docx", FileMode.Create); doc.Write(file); file.Close(); } ``` 这个方法将数据填充到一个包含两列的表格中,第一列为“Name”,第二列为“Age”。然后,将文档保存到名为“output.docx”的文件中。 4. 调用导出方法,将数据传递给它。 ``` List<MyData> data = GetDataFromDatabase(); ExportToWord(data); ``` 在这个例子中,我们从数据库中获取数据,并将它传递给导出方法。 这是最基本的示例。你可以根据需要自定义文档的外观和内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值