C# 使用DocX生成word文档

1、引用DocX包3.0.0版本

2、引用包

using Xceed.Words.NET;

3、生成word文档

  // 保存文档到 Streamvar stream = new MemoryStream();// 创建一个新的文档using (var doc = DocX.Create("Document")){// 添加页眉doc.AddHeaders();Header header = doc.Headers.Odd;// 在页眉中添加带有下划线格式的段落Paragraph headerParagraph = header.InsertParagraph();headerParagraph.Append("文档名").Font(new Xceed.Document.NET.Font("宋体")).FontSize(10.5).Alignment = Alignment.left;// 添加包含一行空白表格的段落来模拟横线//Table lineTable = header.InsertTable(1, 1);//lineTable.Rows[0].Height = 1;//lineTable.SetBorder(TableBorderType.Top, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));Paragraph p = doc.InsertParagraph();// 添加标题p.AppendLine("标题V1.1").FontSize(18d).Bold().Spacing(6).Alignment = Alignment.center;// 设置行高p.LineSpacingAfter = 40;// 添加正文内容// 添加报表表格var reportTable = doc.AddTable(10, 4);reportTable.Design = TableDesign.LightListAccent1;var defaultRowHeight = 40; // 按照你的需要设置行高的值// 设置表格所有行的高度 边框foreach (var row in reportTable.Rows){row.Height = defaultRowHeight; // 设置行高foreach (var reportCell in row.Cells){reportCell.VerticalAlignment = VerticalAlignment.Center;reportCell.SetBorder(TableCellBorderType.Bottom, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));reportCell.SetBorder(TableCellBorderType.Top, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));reportCell.SetBorder(TableCellBorderType.Left, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));reportCell.SetBorder(TableCellBorderType.Right, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));}}reportTable.SetBorder(TableBorderType.Bottom, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));reportTable.SetBorder(TableBorderType.Top, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));reportTable.SetBorder(TableBorderType.Left, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));reportTable.SetBorder(TableBorderType.Right, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));reportTable.Rows[0].MergeCells(0, 3);reportTable.Rows[8].Height = 100;reportTable.Rows[9].Height = 170;// 填充表格内容reportTable.Rows[0].Cells[0].Paragraphs.First().Append("一、报告概览").Font(new Xceed.Document.NET.Font("宋体")).FontSize(16).Bold().Alignment = Alignment.center;reportTable.Rows[1].Cells[0].Paragraphs.First().Append("项目编号");//项目编号reportTable.Rows[1].Cells[1].Paragraphs.First().Append(input.ProjectNumber);reportTable.Rows[1].Cells[2].Paragraphs.First().Append("申请单位");//申请单位reportTable.Rows[1].Cells[3].Paragraphs.First().Append(input.Department);reportTable.MergeCellsInColumn(2, 1, 2);var requist = reportTable.Rows[9].Cells[0];reportTable.Rows[9].MergeCells(0, 3);Paragraph repa = requist.InsertParagraph();repa.Append("段落标题:").FontSize(10.5).Bold().Alignment = Alignment.left;repa.SpacingAfter(10);Paragraph repa1 = requist.InsertParagraph();repa1.Append("1、123123123123。").FontSize(10.5).Alignment = Alignment.left;repa1.SpacingAfter(10);Paragraph repa2 = requist.InsertParagraph();repa2.Append("2、4324234322423。").FontSize(10.5).Alignment = Alignment.left;repa2.SpacingAfter(10);Paragraph repa3 = requist.InsertParagraph();repa3.Append("3、4356564557657。").FontSize(10.5).Alignment = Alignment.left;repa3.SpacingAfter(10);// 将报表概览表格添加到文档doc.InsertTable(reportTable);// 添加系统自测结果表格var testResultTable = doc.AddTable(2, 1);testResultTable.Design = TableDesign.LightListAccent1;// 设置表格所有行的高度 边框foreach (var row in testResultTable.Rows){row.Height = defaultRowHeight; // 设置行高foreach (var resultCell in row.Cells){resultCell.VerticalAlignment = VerticalAlignment.Center;resultCell.SetBorder(TableCellBorderType.Bottom, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));resultCell.SetBorder(TableCellBorderType.Top, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));resultCell.SetBorder(TableCellBorderType.Left, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));resultCell.SetBorder(TableCellBorderType.Right, new Border(BorderStyle.Tcbs_single, BorderSize.one, 5, Color.Black));}}testResultTable.SetBorder(TableBorderType.Bottom, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));testResultTable.SetBorder(TableBorderType.Top, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));testResultTable.SetBorder(TableBorderType.Left, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));testResultTable.SetBorder(TableBorderType.Right, new Border(BorderStyle.Tcbs_single, BorderSize.one, 10, Color.Black));testResultTable.Rows[0].Height = 40;testResultTable.Rows[1].Height = 360;testResultTable.Rows[0].Cells[0].Paragraphs.First().Append("二、表单二").Font(new Xceed.Document.NET.Font("宋体")).FontSize(16).Bold().Alignment = Alignment.center;Cell resultImgCell = testResultTable.Rows[1].Cells[0];resultImgCell.RemoveParagraphAt(0);// 创建一个段落Paragraph resultParagraph = resultImgCell.InsertParagraph();// 插入图片到段落中var img1 = doc.AddImage(input.Content.GetStream());Picture pic1 = img1.CreatePicture();// 设置图片大小pic1.Width = doc.PageWidth - doc.MarginLeft - doc.MarginRight; // 设置图片宽度等于页面宽度减去左右页边距pic1.Height = ((float)Math.Round((double)pic1.Height * ((double)pic1.Width / (double)pic1.Width))); // 根据宽度比例计算高度//pic1.Width = 450;//pic1.Height = 100;// 将图片添加到段落resultParagraph.AppendPicture(pic1);// 插入图片到段落中var img2 = doc.AddImage(input.Content1.GetStream());Picture pic2 = img2.CreatePicture();// 设置图片大小pic2.Width = doc.PageWidth - doc.MarginLeft - doc.MarginRight; // 设置图片宽度等于页面宽度减去左右页边距pic2.Height = ((float)Math.Round((double)pic2.Height * ((double)pic2.Width / (double)pic2.Width))); // 根据宽度比例计算高度// 将图片添加到段落resultParagraph.AppendPicture(pic2);// 将系统自测结果表格添加到文档doc.InsertTable(testResultTable);doc.InsertParagraph();doc.SaveAs(stream);// 将 Stream 位置设为起始位置stream.Position = 0;// 返回生成的 Word 文档的 Stream//return stream;}

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

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

相关文章

docker的快速入门教程

Docker的快速入门教程主要包括以下几个步骤: 一、安装Docker 根据你的操作系统,下载并安装Docker。例如,在Ubuntu下,你可以直接使用apt-get进行安装。在安装完成后,启动Docker服务,并将其设置为开机启动。…

基于SSM SpringBoot vue家教交流平台

基于SSM SpringBoot vue家教交流平台 系统功能 管理员登录 家长登录注册 学生登录注册 教师登录注册 个人中心 家长信息管理 学生信息管理 教师信息管理 招聘家教管理 应聘家教管理 确认招聘管理 论坛管理 系统管理 我的收藏管理 管理员管理 开发环境和技术 开发语言&#x…

宏任务与微任务:JavaScript异步编程的秘密

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

高等数学常用公式

高等数学常用公式 文章目录 内容大纲 内容 大纲 感谢观看 期待关注 有问题的小伙伴请在下方留言,喜欢就点个赞吧

并发容器介绍(二)

并发容器介绍(二) 文章目录 并发容器介绍(二)BlockingQueueBlockingQueue 简介ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueue ConcurrentSkipListMap 文章来自Java Guide 用于学习如有侵权,立即删除 Bl…

c语言:甲流疫情死亡率

甲流疫情死亡率 任务描述 甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止2009年12月22日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。 输入格式: 输入仅一行,有两个整数,第一个为确诊数&#xf…

YOLO V9 C++版本部署

文章目录 一、环境配置二、编译三、运行yolo四、测试效果 一、环境配置 下载MNN git clone https://github.com/alibaba/MNN.git下载MNN-YOLO git clone https://github.com/wangzhaode/mnn-yolo.git二、编译 ### compile mnn ### cd MNN mkdir build_s cd build_s/ cmake …

算法刷题Day6 | 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

目录 0 哈希表 哈希函数1 有效的字母异位词1.1 string的回顾1.2 我的代码 2 两个数组的交集2.1 unordered_set 介绍2.2 我的解题(set) 3 快乐数3.1 我的解题(set) 4 两数之和4.1 暴力求解4.2 哈希表(map) &…

vue-cli自定义创建项目-eslint依赖冲突解决方式

创建项目步骤 概览: 在安装 npm安装时会报错 npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm ERR! node_modules/eslint-plugin…

公网ip和局域网ip

什么是公网IP? 公网,俗称外网,又被叫做互联网,是连接不同地区局域网或者城域网计算机的通信的远程网络。通常可以跨接很大的物理范围,连接多个地区、城市和国家提供远距离通信,形成全球性的互联网络。因此…

开源好用的所见即所得(WYSIWYG)编辑器:Editor.js

文章目录 特点基于区块干净的数据 界面与交互插件标题和文本图片列表Todo表格 使用安装创建编辑器实例配置工具本地化自定义样式 今天介绍一个开源好用的Web所见即所得(WYSIWYG)编辑器: Editor.js Editor.js 是一个基于 Web 的所见即所得富文本编辑器,它…

爬虫怎么使用代理IP通过HTML和CSS采集数据?

使用爬虫采集数据时,有时为了隐藏真实IP地址或规避某些网站的限制,我们需要使用代理IP。同时,通过HTML和CSS选择器,我们可以定位并提取页面中的特定数据。以下是一个基本的步骤说明,以Python的requests和BeautifulSoup…

nodejs版本过高导致vue-cli项目无法正常运行解决方案

95% emitting CompressionPlugin ERROR Error: error:0308010C:digital envelope routines::unsupported 方法一:在使用 npm run dev之前使用 set NODE_OPTIONS--openssl-legacy-provider Error: error:0308010C:digital envelope routines::unsupported 解决方法…

3.11_C++_day1_作业

作业要求&#xff1a; 程序代码&#xff1a; #include <iostream> #include <string.h>using namespace std;int main() {int a0,b0,c0,d0,e0;//分别记录字符串中的大写&#xff0c;小写&#xff0c;数字&#xff0c;空格&#xff0c;其他字符个数string str;cha…

考完PMP考什么?趁热打铁!

拿到一个PMP认证并不是终点&#xff0c;而是起点&#xff0c;职场的竞争是非常激烈的&#xff0c;只有不断学习才能站稳脚跟&#xff01;建议大家可以趁热打铁&#xff0c;多考几个证书&#xff0c;以下是推荐了考完PMP后可以考的热门证书。 1.软考 软考是计算机技术与软件专业…

JVM对象创建与内存分配机制分析

JVM对象创建与内存分配机制分析 前言一、对象的创建二、分配内存1&#xff09;内存划分2&#xff09;本地线程分配缓冲 三、初始化四、设置对象头五、执行< init>方法六、对象内存分配七、对象内存回收可达性分析算法&#xff1a; 总结 前言 最新的 Java 面试题&#xf…

C++作业day1

2> 试编程 提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 要求使用C风格字符串完成 #include <iostream> #include <string.h>using namespace std;int main() {string str;cout << "请输…

C++学习笔记:红黑树

红黑树 什么是红黑树红黑树的规则红黑树节点的定义红黑树的插入空树插入非空插入条件判断新插入的节点 cur 不为 root 且 parent->_col 为红就需要调整父节点为左 grandf->left parent当uncle节点为红色时,只需要进行颜色调整,即可当uncle为空 或 者存在但是为黑parent …

【ICer的脚本练习】给模块顶层生成一个dummy文件 —— gen_dummy

系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录-CSDN博客 通过这篇文章,咱们来系统的看一下一个典型的python脚本应用和正则表达式的使用。 gen_dummy这个脚本的应用场景是这样的:在已经确定了顶层接口之后,模块的开发人员A开始模块编码。而此时上层的开发人员B需…

案例分析篇07:数据库设计相关28个考点(23~28)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12601310.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…