ABP word下载 模板替换 文件下载
2023-09-11 14:22:26 时间
原文:
https://github.com/A-Grass-Code/OpenDemo/tree/main/Word模板文件的替换并生成新的Word文件
引用的包:DocX
代码
public FileResult Download(int id)
{
string filename = $"DailyDiaryTemplate2-{DateTime.Now.ToString("HH_mm_ss_ffff")}.docx";
string path1 = _hostingEnvironment.WebRootPath + "/TemplateFiles/Quality/DailyDiaryTemplate2.docx";
string path2 = $"{_hostingEnvironment.WebRootPath}/TemplateFiles/Quality/"+ filename;
WordTemplateReplace(path1, path2,
new Dictionary<string, string>()
{
["ConstructionDate"] = "张三",
["ConstructionTitle"] = "23",
["WeatherCondition"] = "男",
});
System.Threading.Thread.Sleep(1000);//模拟延迟
return File($"/TemplateFiles/Quality/" + filename, "application/octet-stream", "施工日志.docx");// 返回文件
}
public bool WordTemplateReplace(string tempPath, string newWordPath, Dictionary<string, string> textDic)
{
try
{
var doc = DocX.Load(tempPath); // 加载 Word 模板文件
if (textDic != null && textDic.Count > 0)
{
foreach (var paragraph in doc.Paragraphs) // 遍历当前 Word 文件中的所有(段落)段
{
foreach (var texts in textDic)
{
try
{
paragraph.ReplaceText($"[={texts.Key}]", texts.Value); // 替换段落中的文字
}
catch (Exception ex)
{
// 不处理
continue;
}
}
}
foreach (var table in doc.Tables) // 遍历当前 Word 文件中的所有表格
{
foreach (var row in table.Rows) // 遍历表格中的每一行
{
foreach (var cell in row.Cells) //遍历每一行中的每一列
{
foreach (var paragraph in cell.Paragraphs) // 遍历当前表格里的所有(段落)段
{
foreach (var texts in textDic)
{
try
{
paragraph.ReplaceText($"[={texts.Key}]", texts.Value); // 替换段落中的文字
}
catch (Exception ex)
{
// 不处理
continue;
}
}
}
}
}
}
}
doc.SaveAs(newWordPath);
return true;
}
catch (Exception ex)
{
// 不处理
return false;
}
}
效果
相关文章
- C#实现文件数据库
- java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
- Solidworks drwdot文件如何打开,如何制作Solidworks工程图模板
- java学习笔记16--I/O流和文件
- 【刷题】面筋-shell:统计一个文件中重复的行和重复次数
- inifile 一个轻量级的INI文件解析库
- 模板文件不存在,无法解析文档”的几种解决办法
- vue.js3: 用jszip打包压缩图片文件(vue@3.2.37 / jszip@3.10.0 / file-saver@2.0.5)
- Freemarker基于模板字符串生成静态化html文件
- c++模板学习10之类模板分文件编写
- xml 文件不给提示(以mybatis 的 mapper映射文件为例)
- Angular应用的angular.json文件字段一览
- Android的报错提示:java.io.FileNotFoundException: xxx/xxx.后缀名(找不到文件)
- linux - 解压tgz 文件指令
- dispatcher-servlet.xml文件配置模板
- web.xml文件配置模板
- Pycharm新建文件模板配置
- 【Android 性能优化】应用启动优化 ( 方法追踪代码模板 | 示例项目 | SD 卡访问权限 | 示例代码 | 获取 Trace 文件 | Android Studio 查看文件)
- Java调用阿里云OSS下载文件
- 075:vue+openlayers: Drag-and-Drop拖拽文件解析显示图形(代码示例)
- LabVIEW项目或库文件已损坏
- 8.3 fileinput--多文件输入操作
- Android Studio添加文件注释头模板?
- Java中创建、读写Excel文件
- python的文件读取基础入门(read(),readlines(),with.open())
- springboot使用jxls导出excel___(万能通用模板)--- SpringBoot导入、导出Excel文件___SpringBoot整合EasyExcel模板导出Excel