自动化word导出

c#

using (var document = DocX.Create(file))
{document.InsertParagraph().Append("故障报告").FontSize(18).Bold().Alignment = Xceed.Document.NET.Alignment.center;var table = document.InsertTable(1, 2);table.SetBorder(TableBorderType.Top, new Xceed.Document.NET.Border() { Color = Color.Transparent });table.SetBorder(TableBorderType.Bottom, new Xceed.Document.NET.Border() { Color = Color.Transparent });table.SetBorder(TableBorderType.Left, new Xceed.Document.NET.Border() { Color = Color.Transparent });table.SetBorder(TableBorderType.Right, new Xceed.Document.NET.Border() { Color = Color.Transparent });table.SetBorder(TableBorderType.InsideH, new Xceed.Document.NET.Border() { Color = Color.Transparent });table.SetBorder(TableBorderType.InsideV, new Xceed.Document.NET.Border() { Color = Color.Transparent });table.Rows[0].Cells[0].Paragraphs[0].Append("型号:" + uavtype.SelectedItem).Alignment=Alignment.left;table.Rows[0].Cells[1].Paragraphs[0].Append("故障名称:" + faultname.Text).Alignment=Alignment.right;MemoryStream memoryStream = new MemoryStream();edit.CaptureImage().Save(memoryStream);document.InsertParagraph().AppendPicture(document.AddImage(memoryStream).CreatePicture(300, document.PageWidth - document.MarginLeft - document.MarginRight));var group = edit._groups.Where(o => !string.IsNullOrEmpty(o.Text)).ToList();table = document.InsertTable(group.Count+2, 3);table.Alignment = Xceed.Document.NET.Alignment.center;table.SetBorder(TableBorderType.Top, new Xceed.Document.NET.Border() { Color = Color.PowderBlue });table.SetBorder(TableBorderType.Bottom, new Xceed.Document.NET.Border() { Color = Color.PowderBlue });table.SetBorder(TableBorderType.Left, new Xceed.Document.NET.Border() { Color = Color.PowderBlue });table.SetBorder(TableBorderType.Right, new Xceed.Document.NET.Border() { Color = Color.PowderBlue });table.SetBorder(TableBorderType.InsideH, new Xceed.Document.NET.Border() { Color = Color.PowderBlue });table.SetBorder(TableBorderType.InsideV, new Xceed.Document.NET.Border() { Color = Color.PowderBlue });table.Rows[0].MergeCells(0,2);table.Rows[0].Cells[0].FillColor = Color.PowderBlue;table.Rows[0].Cells[0].Paragraphs[0].Append("节点规则");table.Rows[1].Cells[0].Paragraphs[0].Append("节点");table.Rows[1].Cells[1].Paragraphs[0].Append("规则名称");table.Rows[1].Cells[2].Paragraphs[0].Append("规则内容");for (int i=0; i< group.Count; i++){table.Rows[i+2].Cells[0].Paragraphs[0].Append(group[i].Text);table.Rows[i+2].Cells[1].Paragraphs[0].Append(group[i].Name);table.Rows[i+2].Cells[2].Paragraphs[0].Append(group[i].Rule);}document.Save();
}

c++

CApplication word_app;
if (!word_app.CreateDispatch(_T("Word.Application"), NULL))//if (!word_app.CreateDispatch(_T("KWPS.Application"), NULL))
{//printf("本机没有安装word产品!");LOG_ERROR("该机器没有安装 MS WORD");return -1;
}
word_app.put_Visible(FALSE);//设置word可见
COleVariant vTrue((short)TRUE), vFalse((short)FALSE), VOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
CDocuments docs;
CDocument0 doc;
docs = word_app.get_Documents();
doc = docs.Add(&CComVariant(_T("")), &CComVariant(false), &CComVariant(0), &CComVariant());
CPageSetup pagesetup = doc.get_PageSetup();
pagesetup.put_LeftMargin(50);
pagesetup.put_RightMargin(50);  //设置左右间距
try {CSelection sel = word_app.get_Selection();CParagraphs wordParagraphs = sel.get_ParagraphFormat();CString strShow = L"故障报告";CFont0 font = sel.get_Font();font.put_Size(16);font.put_Bold(1);font.put_Name(L"宋体");wordParagraphs.put_Alignment(1);sel.TypeText(strShow);sel.TypeParagraph();CTables0 tables = doc.get_Tables();CTable0 table = tables.Add(sel.get_Range(), 1, 2, vTrue, VOpt);CBorders borders = table.get_Borders();borders.put_InsideColor(RGB(255, 255, 255));borders.put_OutsideColor(RGB(255, 255, 255));auto input_cell = [](CCell cell, CString strShow, int align) {CRange range = cell.get_Range();CParagraphs oParagraphs = range.get_Paragraphs();CFont0 font = range.get_Font();font.put_Size(10);font.put_Bold(0);font.put_Name(L"宋体");oParagraphs.put_Alignment(align);range.InsertAfter(strShow);};CCell cell = table.Cell(1, 1);input_cell(cell, L"型号:" + record.uavtype, 0);cell = table.Cell(1, 2);input_cell(cell, L"故障名称:" + record.faultname, 2);sel.GoTo(COleVariant((short)3), COleVariant((short)-1),VOpt,VOpt);CnlineShapes shapes = sel.get_InlineShapes();CnlineShape shape = shapes.AddPicture(image.c_str(), vFalse, vTrue, VOpt);shape.put_Height(300);shape.put_Width(pagesetup.get_PageWidth()-100);vector<tuple<wstring, wstring, wstring, wstring>> item;recrusvie_tree(record.tree["tree"], item);tables = doc.get_Tables();table = tables.Add(sel.get_Range(), item.size()+5, 4, vTrue, VOpt);borders = table.get_Borders();borders.put_InsideColor(RGB(198, 217, 241));borders.put_OutsideColor(RGB(198, 217, 241));cell = table.Cell(1, 1);cell.Merge(table.Cell(1, 2));cell.Merge(table.Cell(1, 2));cell.Merge(table.Cell(1, 2));CShading shading = cell.get_Shading();shading.put_BackgroundPatternColor(RGB(198, 217, 241));input_cell(cell,  L"故障诊断结果建议", 0);cell = table.Cell(2, 1);cell.Merge(table.Cell(2, 2));input_cell(cell, L"诊断结果", 0);cell = table.Cell(2, 2);cell.Merge(table.Cell(2, 3));input_cell(cell, record.result,0);cell = table.Cell(3, 1);cell.Merge(table.Cell(3, 2));input_cell(cell, L"专家建议", 0);cell = table.Cell(3, 2);cell.Merge(table.Cell(3, 3));input_cell(cell, record.advise,0);cell = table.Cell(4, 1);cell.Merge(table.Cell(4, 2));cell.Merge(table.Cell(4, 2));cell.Merge(table.Cell(4, 2));shading = cell.get_Shading();shading.put_BackgroundPatternColor(RGB(198, 217, 241));input_cell(cell, L"故障各节点规则", 0);CString header[4] = { L"节点",L"规则名称",L"规则内容",L"状态"};for (int j = 0; j < item.size()+1; j++) {for (int i = 0; i < 4; i++) {cell = table.Cell(j+5, i + 1);strShow = j==0?header[i]:(i == 0?get<0>(item[j-1]).c_str() : i == 1 ? get<1>(item[j-1]).c_str() : i == 2 ? get<2>(item[j-1]).c_str() : get<3>(item[j-1]).c_str());input_cell(cell, strShow,1);}}sel.GoTo(COleVariant((short)3), COleVariant((short)-1), VOpt, VOpt);sel.TypeParagraph();for (int i = 0; i < record.faultcase.size(); i++) {table = tables.Add(sel.get_Range(), 7, 2, vTrue, VOpt);borders = table.get_Borders();borders.put_InsideColor(RGB(198, 217, 241));borders.put_OutsideColor(RGB(198, 217, 241));cell = table.Cell(1, 1);cell.Merge(table.Cell(1, 2));shading = cell.get_Shading();shading.put_BackgroundPatternColor(RGB(198, 217, 241));input_cell(cell, L"故障名称:"+ get<0>(record.faultcase[i])).c_str(), 0);cell = table.Cell(2, 1);input_cell(cell, L"案例主题", 0);cell = table.Cell(2, 2);input_cell(cell, get<0>(record.faultcase[i]).c_str(), 0);cell = table.Cell(3, 1);input_cell(cell, L"故障描述", 0);cell = table.Cell(3, 2);input_cell(cell, get<1>(record.faultcase[i]).c_str(), 0);cell = table.Cell(4, 1);input_cell(cell, L"案例内容", 0);cell = table.Cell(4, 2);input_cell(cell, get<2>(record.faultcase[i]).c_str(), 0);cell = table.Cell(5, 1);input_cell(cell, L"分析原因", 0);cell = table.Cell(5, 2);input_cell(cell, get<3>(record.faultcase[i]).c_str(), 0);cell = table.Cell(6, 1);input_cell(cell, L"问题定位", 0);cell = table.Cell(6, 2);input_cell(cell, get<4>(record.faultcase[i]).c_str(), 0);cell = table.Cell(7, 1);input_cell(cell, L"处理建议", 0);cell = table.Cell(7, 2);input_cell(cell, get<5>(record.faultcase[i]).c_str(), 0);}doc.SaveAs(COleVariant(filename), VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, VOpt,VOpt, VOpt, VOpt, VOpt, VOpt, VOpt, VOpt);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/822464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.8.5 卷积神经网络近年来在结构设计上的主要发展和变迁——Inception-v4 和 Inception-ResNet

1.8.5 卷积神经网络近年来在结构设计上的主要发展和变迁——Inception-v4 和 Inception-ResNet 前情回顾&#xff1a; 1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet 1.8.2 卷积神经网络近年来在结构设计上的主要发展和变迁——VGGNet 1.8.3 卷积神经网络近…

oracle安装后报错ORA-01031: insufficient privileges

1.管理员身份打开CMD&#xff0c;输入net user查看计算机用户 2.键入"net localgroup ora_dba"查看ora_dba下的具体用户 3.键入"net localgroup ora_dba administrator /add"把本计算机用户都添加进ora_dba组下

接口测试——postman

一.下载与安装 https://www.getPostman.com/ 界面导航说明 二.get请求 第一个get请求 批量执行接口请求&#xff1a; 1. 右击run collection 2. 会出现runner标签页 携带参数的GET请求 所谓的查询参数&#xff0c;其实就是URL地址中问号&#xff08;?&#xff09;后面的部分…

使用Python进行自动化测试【第163篇—自动化测试】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 如何使用Python进行自动化测试&#xff1a;测试框架的选择与应用 自动化测试是软件开发过程…

Java生成签名值

Base64签名值&#xff1a;signValue /*** 新增usbkey注册管理** param tbKeyManager usbkey注册管理* return 结果*/ Override public int insertTbKeyManager(TbKeyManager tbKeyManager) {tbKeyManager.setCreateTime(DateUtils.getNowDate());//生成签名值protectString to…

富格林:巧用技术指标提高出金安全

富格林指出&#xff0c;相信大家最近也有留意到黄金涨疯的话题频繁登上热搜&#xff0c;在众多利好因素的刺激下&#xff0c;金价已经到达了势不可挡的地步&#xff0c;这给到了投资者们充足的盈利机会。然就算是方向比较明朗也不代表能够绝对获利&#xff0c;大家还需要做好黄…

【C++】stack与queue(相关接口介绍、容器适配器、deque、模拟实现)

一、stack 1.1 stack介绍 stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环境中&#xff0c;其删除只能从容器的一端进行 元素的插入与提取操作。stack是作为容器适配器被实现的&#xff0c;容器适配器即是对特定类封装作为其底层的容器&#xff0c;并提供…

冯喜运:4.17昨日黄金完美区间多空通杀,今日黄金原油分析

【黄金走势分析 】&#xff1a;黄金昨日整体过山车&#xff0c;早盘黄金冲高2392一线后回落&#xff0c;价格在2379-2389区间震荡&#xff0c;午后区间下移&#xff0c;价格在2362-2380继续震荡&#xff0c;晚间价格再次触及2363支撑反弹&#xff0c;连阳上升突破早间高点&…

2024基于PHP开发的微信抖音小程序点餐系统开发源代码案例

最近新开发了一套小程序点餐系统&#xff0c;用户点餐之后可以选择堂食或者是外卖到家&#xff0c;这套系统主要功能有&#xff0c;产品展示&#xff0c;支付系统&#xff0c;外卖配送&#xff0c;用户系统&#xff0c;积分系统&#xff0c;商家管理系统&#xff0c;抽奖系统&a…

SCI一区 | Matlab实现POA-TCN-BiGRU-Attention鹈鹕算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测

SCI一区 | Matlab实现POA-TCN-BiGRU-Attention鹈鹕算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现POA-TCN-BiGRU-Attention鹈鹕算法优化时间卷积双向门控循环单元注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考…

Python SQL解析和转换库之sqlglot使用详解

概要 Python SQLGlot是一个基于Python的SQL解析和转换库,可以帮助开发者更加灵活地处理和操作SQL语句。本文将介绍SQLGlot库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装SQLGlot库非常简单,可以使用pip命令进行安装: pip install sqlglot安装完成后…

Day07 React——第七天 (18新特性 hook)

React 18引入了hooks&#xff0c;这是一种让函数组件拥有类组件的功能的方式。使用hooks&#xff0c;函数组件可以拥有状态管理、生命周期方法、副作用处理等功能&#xff0c;使得函数组件具有了和类组件类似的能力。hooks可以让函数组件更加灵活和易于管理&#xff0c;同时也减…

【中级软件设计师】上午题08-UML(下):序列图、通信图、状态图、活动图、构件图、部署图

上午题08-UML 1 序列图2 通信图3 状态图3.1 状态和活动3.2 转换和事件 4 活动图5 构件图&#xff08;组件图&#xff09;6 部署图 UML图总和 静态建模&#xff1a;类图、对象图、用例图 动态建模&#xff1a;序列图&#xff08;顺序图&#xff0c;时序图&#xff09;、通信图&a…

Python爬虫入门教程!

什么是爬虫? 爬虫就是自动获取网页内容的程序&#xff0c;例如搜索引擎&#xff0c;Google&#xff0c;Baidu 等&#xff0c;每天都运行着庞大的爬虫系统&#xff0c;从全世界的网站中爬虫数据&#xff0c;供用户检索时使用。 爬虫流程 其实把网络爬虫抽象开来看&#xff0c;它…

(十一)PostgreSQL的wal日志

PostgreSQL的wal日志 在 PostgreSQL 中&#xff0c;WAL&#xff08;Write-Ahead Logging&#xff09;日志是一种用于保证数据库事务日志的完整性和数据恢复的机制。WAL 的核心思想是&#xff0c;在对数据库中的数据进行任何修改之前&#xff0c;先将这些修改记录到磁盘上的日志…

数据相关术语、英文翻译以及定义汇总看这里!

随着数字化时代的快速发展&#xff0c;越来越多的小伙伴认识到了数据的作用性。今天我们小编就给大家汇总了部分数据相关术语以及定义&#xff0c;希望对大家有用哦&#xff01; 数据相关术语、英文翻译以及定义汇总看这里&#xff01;&#xff08;来源于网络&#xff0c;仅供参…

LeetCode 349.两个数组的交集(HashSet的使用)

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2]示例 2&#xff1a; 输入&#xff1a;nums1 …

React + Ts + Vite + Antd 项目搭建

1、创建项目 npm create vite 项目名称 选择 react 选择 typescript 关闭严格模式 建议关闭严格模式&#xff0c;因为不能自动检测副作用&#xff0c;有意双重调用。将严格模式注释即可。 2、配置sass npm install sass 更换所有后缀css为sass vite.config.ts中注册全局样式 /…

2023年图灵奖颁发给艾维·维格森(Avi Wigderson),浅谈其计算复杂性理论方面做出的重要贡献

Avi Wigderson是一位以色列计算机科学家&#xff0c;他在计算复杂性理论方面做出了重要的贡献&#xff0c;并对现代计算产生了深远的影响。 Wigderson的主要贡献之一是在证明计算复杂性理论中的基本问题的困难性方面。他证明了许多经典问题的困难性&#xff0c;如图论中的图同构…

LeetCode: 209 长度最小的子数组

209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 示例 1…