public ResultResponse<string[]> PrintStudyRecords([FromBody]StudyInfo info)
{
ResultResponse<string[]> ret = new ResultResponse<string[]>();
if (info.ProjectId <= )
{
ret.Flag = false;
return ret;
}
var project = ProjectContract.GetFilterProject(p => p.Id == info.ProjectId).FirstOrDefault();
if (project == null)
{
ret.Flag = false;
return ret;
}
var trainTarget = TrainTargetContract.GetFilterTrainTargets(t => t.Id == project.TrainTargetId).FirstOrDefault();
var studyRecords = StudyRecordsContract.GetList(s => s.ProjectId == info.ProjectId && s.IsFinish && !s.IsDelete).ToList();
Document doc;
using (var stream = System.IO.File.OpenRead(HttpContext.Current.Server.MapPath("/Content/学时记录.docx")))
{
doc = new Document(stream);
}
doc.Range.Replace(string.Format("${0}$", "Name"), LoginUser.Name, false, false);
doc.Range.Replace(string.Format("${0}$", "PersonalId"), LoginUser.PersonalId, false, false);
doc.Range.Replace(string.Format("${0}$", "Sex"), string.IsNullOrWhiteSpace(LoginUser.Sex) ? "" : LoginUser.Sex, false, false);
doc.Range.Replace(string.Format("${0}$", "PhoneNum"), string.IsNullOrWhiteSpace(LoginUser.Tel) ? "" : LoginUser.Tel, false, false);
doc.Range.Replace(string.Format("${0}$", "Company"), string.IsNullOrWhiteSpace(project.Company) ? "" : project.Company, false, false);
doc.Range.Replace(string.Format("${0}$", "TrainTargetName"), trainTarget != null ? trainTarget.TrainName : "", false, false);
doc.Range.Replace(string.Format("${0}$", "AllHours"), studyRecords.Count().ToString(), false, false);
        //获取指定表格 2指的是表格下标,一共有三个,我需要改变内容的是第三个表格
Table tableRecord = (Table)doc.GetChild(NodeType.Table, , true);
if (tableRecord == null)
{
var op = new ImageSaveOptions(SaveFormat.Jpeg);
op.PrettyFormat = true;
ret.Result = new string[doc.PageCount];
for (var page = ; page < doc.PageCount; page++)
{
op.PageIndex = page;
using (var ms = new MemoryStream())
{
doc.Save(ms, op);
ret.Result[page] = "data:image/jpeg;base64," + Convert.ToBase64String(ms.GetBuffer());
}
}
ret.Flag = false;
return ret;
}
if (studyRecords.Count() > )
{
for (int i = ; i < studyRecords.Count - ; i++)
{
//克隆指定行
Row clonedRow = (Row)tableRecord.LastRow.Clone(true);
//在指定位置插入克隆行
tableRecord.AppendChild(clonedRow);
}
}
var rowIndex = ;
ZhuJian.Entity.TrainManage.StudyRecord studyRecord = null;
for (int i = ; i < studyRecords.Count; i++)
{
studyRecord = studyRecords[i];
rowIndex = i + ;
var row = tableRecord.Rows[rowIndex]; var cell0 = row.Cells[];
Paragraph pg0 = new Paragraph(doc);
pg0.AppendChild(new Run(doc, rowIndex + ""));
cell0.RemoveAllChildren();
cell0.AppendChild(pg0); var cell1 = row.Cells[];
Paragraph pg1 = new Paragraph(doc);
pg1.AppendChild(new Run(doc, studyRecord.StartTime.ToString("yyyy/MM/dd") + "-" + (studyRecord.EndTime.HasValue ? studyRecord.EndTime.Value.ToString("yyyy/MM/dd") : "")));
cell1.RemoveAllChildren();
cell1.AppendChild(pg1); var cell2 = row.Cells[];
Paragraph pg2 = new Paragraph(doc);
pg2.AppendChild(new Run(doc, studyRecord.ResourceName));
cell2.RemoveAllChildren();
cell2.AppendChild(pg2); var cell3 = row.Cells[];
Paragraph pg3 = new Paragraph(doc);
pg3.AppendChild(new Run(doc, studyRecord.IsFinish ? "" : ""));
cell3.RemoveAllChildren();
cell3.AppendChild(pg3);
}
var option = new ImageSaveOptions(SaveFormat.Jpeg);
option.PrettyFormat = true;
ret.Result = new string[doc.PageCount];
for (var page = ; page < doc.PageCount; page++)
{
option.PageIndex = page;
using (var ms = new MemoryStream())
{
doc.Save(ms, option);
ret.Result[page] = "data:image/jpeg;base64," + Convert.ToBase64String(ms.GetBuffer());
}
}
ret.Flag = true;
return ret;
}

C# Aspose.Words 数据写入到word,模板样式复杂(转换指定内容并返回多张图片)的更多相关文章

  1. 将excel中的数据填入word模板中-VBA

    首先将word模板中需要填写excel中数据的空白处用自己独特的字符串标记,比如   数据001  什么的.如下图: 这样,就可以用vba搜寻这些自己独特的标记来根据excel内容填充word了. 第 ...

  2. Python中 将数据插入到Word模板并生成一份Word

    搬运出处: https://blog.csdn.net/DaShu0612/article/details/82912064

  3. c#读取Word模板,利用书签替换内容包括表格

    //生成WORD程序对象和WORD文档对象 Microsoft.Office.Interop.Word.Application appWord = new Microsoft.Office.Inter ...

  4. Java将数据写入word文档(.doc)

    Java可用org.apache.poi包来操作word文档.org.apache.poi包可于官网上下载,解压后各jar作用如下图所示: 可根据需求导入对应的jar. 一.HWPFDocument类 ...

  5. 读取word模板,填充数据后导出

    一.需求说明 定期生成word报告,报告中含有文本.表格.图表等元素,依次获取进行替换,保留原有样式,生成新的word文档 二.引入依赖 <dependency> <groupId& ...

  6. java通过word模板生成word文档

    介绍 上次公司项目需要一个生成word文档的功能,有固定的模板根据业务填充数据即可,由于从来没做过,项目也比较着急于是去网上找有没有合适的工具类,找了好几种,看到其中有freeMark模板生成比较靠谱 ...

  7. 把数据输出到Word (非插件形式)

    项目开发过程中,我们要把数据以各种各样的形式展现给客户.把数据以文档的形式展现给客户相信是一种比较头疼的问题,如果没有好的方法会 使得我的开发繁琐,而且满足不了客户的需求.接下来我会通过两种开发方式介 ...

  8. 前端数据渲染及mustache模板引擎的简单实现

    早期数据渲染的几种方式 在模板引擎没有诞生之前,为了用JS把数据渲染到页面上,诞生了一系列数据渲染的方式. 最最基础的,莫过于直接使用DOM接口创建所有节点. <div id="roo ...

  9. POI往word模板中写入数据

    转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

随机推荐

  1. K8S命令大总结

    一.k8s-kubectl命令大全 Kubectl命令行管理对象类型 命令 描述 基础命令 create 通过文件名或标准输入创建资源. expose 将一个资源公开为一个新的Kubernetes服务 ...

  2. VisualVM监控远程主机

    参考博客 https://blog.csdn.net/u010004317/article/details/82948040 https://blog.csdn.net/lienfeng6/artic ...

  3. [AtCoder] NIKKEI Programming Contest 2019 (暂缺F)

    [AtCoder] NIKKEI Programming Contest 2019   本来看见这一场的排名的画风比较正常就来补一下题,但是完全没有发现后两题的AC人数远少于我补的上一份AtCoder ...

  4. 2025年VR虚拟现实技术将渗透人们日常生活

    2025年VR虚拟现实技术将给人们带来什么好处?今年早些时候,虚拟现实VR游戏制造商Survios在广州一个非常大的购物中心内的一个小型灰色墙壁店面,通过AMC中心植入了其位置游戏市场上的第一面旗帜. ...

  5. hive之视图和索引

    一.视图 1.视图定义 视图其实是一个虚表,视图可以允许保存一个查询,并像对待表一样对这个查询进行操作,视图是一个逻辑结构,并不会存储数据. 2.视图的创建 通过创建视图来限制数据访问可以用来保护信息 ...

  6. postgre存储过程或者视图中"::"双冒号是什么意思

    双冒号是类型转换的意思. 比如: '2019-09-10'::date

  7. 【leetcode】636. Exclusive Time of Functions

    题目如下: 解题思路:本题和括号匹配问题有点像,用栈比较适合.一个元素入栈前,如果自己的状态是“start”,则直接入栈:如果是end则判断和栈顶的元素是否id相同并且状态是“start”,如果满足这 ...

  8. webpack.config.js配置入口出口文件

    目录结构: 新建webpack.config.js配置文件 const path = require('path') //导出 path是node内置的包 通过npm init初始化得到package ...

  9. 教你建立SQL数据库的表分区

    1)新建一个数据库 2)添加几个文件组 3)回到“常规”选项卡,添加数据库文件 看到用红色框框起来的地方没?上一步中建立的文件组在这里就用上了.再看后面的路径,我把每一个文件都单独放在不同的磁盘上,而 ...

  10. 全面质量管理体系运转的基本方法 PDCA

    PDCA管理循环 PDCA循环作为全面质量管理体系运转的基本方法,其实是需要搜集大量数据资料,并综合运用各种管理技术和方法.全面质量管理活动的全部过程,就是质量计划的制订和组织实现的过程,这个过程就是 ...