C# 如何将Excel表格复制到Word中并保留格式
C# 如何将Excel表格复制到Word中并保留格式
在以前的文章中,我分享了如何使用免费控件将word表格中的数据导入到excel中,在本篇文章中我将介绍如何将Excel表格复制到Word表格中,并同时保留原Excel表格的格式。
这里我们需要使用到一个组件,叫做Spire.Office。它是一个企业级的Office组件,包含了Spire.Doc, Spire XLS, Spire.Spreadsheet, Spire.Presentation, Spire.PDF, Spire.DataExport, Spire.OfficeViewer, Spire.PDFViewer, Spire.DocViewer和Spire.BarCode等组件,使用它我们可以实现在.NET应用程序中查看、操作、转换及打印Office文档,PDF文档,创建Barcode以及数据导入导出等工作。这里我们需要使用到的是其中的Spire.Doc和Spire.XLS组件。
首先,下载并安装Spire.Office,然后打开Visual Studio,创建项目并引用Spire.Doc.dll和Spire.Xls.dll。以下是我们需要用到的命名空间:
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Xls;
详细步骤如下:
步骤1:从系统加载Excel文件并获取它的第一个工作表。
Workbook workbook = new Workbook();
workbook.LoadFromFile("DatatableSample.xlsx");
Worksheet sheet = workbook.Worksheets[0];
步骤2:创建一个新的Word文档,添加一个表格并设置它的行列数与Excel表格中的行列数一致。
Document doc = new Document();
//添加表格
Table table = doc.AddSection().AddTable(true);
//设置行列数
table.ResetCells(sheet.LastRow, sheet.LastColumn);
步骤3:将Excel表格中的数据写入到word表格里,并调用自定义的方法CopyStyle()将Excel表格中的格式复制到word表格。
for (int r = 1; r <=sheet.LastRow; r++)
{for (int c = 1; c <= sheet.LastColumn; c++){CellRange xCell =sheet.Range[r, c];TableCell wCell =table.Rows[r - 1].Cells[c - 1];//将数据写入到word表格TextRange textRange =wCell.AddParagraph().AppendText(xCell.NumberText);//复制格式到word表格CopyStyle(textRange,xCell, wCell);}
}
自定义的方法CopyStyle( TextRange wTextRange, CellRangexCell, TableCell wCell)如下:
参数:
wTextRange: Word表格中的文本
xCell: Excel表格中的单元格
wCell: Word表格中的单元格
private static void CopyStyle(TextRangewTextRange, CellRange xCell, TableCell wCell)
{//复制字体格式wTextRange.CharacterFormat.TextColor= xCell.Style.Font.Color;wTextRange.CharacterFormat.FontSize= (float)xCell.Style.Font.Size;wTextRange.CharacterFormat.FontName= xCell.Style.Font.FontName;wTextRange.CharacterFormat.Bold= xCell.Style.Font.IsBold;wTextRange.CharacterFormat.Italic= xCell.Style.Font.IsItalic;//复制背景颜色wCell.CellFormat.BackColor= xCell.Style.Color;//复制文本排列方式switch(xCell.HorizontalAlignment){case HorizontalAlignType.Left:wTextRange.OwnerParagraph.Format.HorizontalAlignment= HorizontalAlignment.Left;break;case HorizontalAlignType.Center:wTextRange.OwnerParagraph.Format.HorizontalAlignment= HorizontalAlignment.Center;break;case HorizontalAlignType.Right:wTextRange.OwnerParagraph.Format.HorizontalAlignment= HorizontalAlignment.Right;break;}
}
步骤4:保存文档。
doc.SaveToFile("result.docx",Spire.Doc.FileFormat.Docx);
运行结果:
完整代码:
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Xls;namespace 复制Excel表格到Word并保留格式
{class Program{static void Main(string[] args){//加载Excel文档Workbook workbook = newWorkbook();workbook.LoadFromFile("DatatableSample.xlsx");Worksheet sheet = workbook.Worksheets[0];//创建一个新的word文档Document doc = newDocument();//添加一个表格到word文档Table table = doc.AddSection().AddTable(true);//设置word表格的行列数table.ResetCells(sheet.LastRow, sheet.LastColumn);for (int r = 1; r<= sheet.LastRow; r++){for (intc = 1; c <= sheet.LastColumn; c++){CellRange xCell = sheet.Range[r, c];TableCell wCell = table.Rows[r -1].Cells[c - 1];//将Excel表格中的数据写入到word表格TextRangetextRange = wCell.AddParagraph().AppendText(xCell.NumberText);//将Excel表格中的格式复制到word表格CopyStyle(textRange, xCell, wCell);}}//设置word表格的列宽for (int i = 0; i< table.Rows.Count; i++){for (intj = 0; j < table.Rows[i].Cells.Count; j++){table.Rows[i].Cells[j].Width = 60f;}}//保存文档并打开doc.SaveToFile("result.docx",Spire.Doc.FileFormat.Docx);System.Diagnostics.Process.Start("result.docx");}private static void CopyStyle(TextRangewTextRange, CellRange xCell, TableCell wCell){//复制Excel单元格的字体格式到word表格wTextRange.CharacterFormat.TextColor = xCell.Style.Font.Color;wTextRange.CharacterFormat.FontSize = (float)xCell.Style.Font.Size;wTextRange.CharacterFormat.FontName = xCell.Style.Font.FontName;wTextRange.CharacterFormat.Bold = xCell.Style.Font.IsBold;wTextRange.CharacterFormat.Italic = xCell.Style.Font.IsItalic;//复制Excel单元格的背景颜色到word表格wCell.CellFormat.BackColor =xCell.Style.Color;//复制Excel单元格的字体排列方式到word表格switch (xCell.HorizontalAlignment){case HorizontalAlignType.Left:wTextRange.OwnerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Left;break;case HorizontalAlignType.Center:wTextRange.OwnerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center;break;case HorizontalAlignType.Right:wTextRange.OwnerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Right;break;}}}
}
C# 如何将Excel表格复制到Word中并保留格式相关推荐
- 将Excel表格复制到Word中
早上帮老板做文档,要把一个Excel表格贴到Word中做展示. 直接复制贴进来吧,表格大小和word不匹配.截图贴进来吧,表之大,一张截不下,最后通过万能的度娘找了一个完美粘贴表格的方案~ 第一步: ...
- Word:Excel表格复制到Word中超出边界
问题 Excel表格 将该Excel表格插入Word中,可能会出现显示不全的问题,如下图所示. 法1. 修改显示方式 注意:该方法仅用于阅读而让表格显示完整. 具体包括两种方法: 在顶部的菜单栏中,点 ...
- Excel表格复制到word中
经常会遇到这样的情况,需要在word漂亮的显示excel中的表格,但是直接复制调整难度比较大. 我们可以先在Word中插入等同列和等同行. 然后选中这个表格,根据word中的设计,设计一个拉风的表格. ...
- Excel表格转到Word中,保持表格不变形,不超边缘纸张范围
Excel表格转到Word中,保持表格不变形,不超边缘纸张范围 目录 Excel表格转到Word中,表格不超边缘纸张范围 1.Excel表格复制到Word中,边缘竟然超出了纸张范围怎么办? 2.选中E ...
- Excel表格拖入Word中表格格式保持不变
一.Excel表格拖入Word中表格格式保持不变 1.选中Excel中的表格,按住Ctrl键,拖动到word中即可. 二.word中的表格复制到Excel中表格格式保持不变 1.将word另存为网页格 ...
- excel 表格复制到word后,宽超出word如何调整?
网上很多方法是用"选择性粘贴----excel表格对象",这个适用表格行数少的,不超过一页word的. 步骤 复制到word里后,选中表格,右键---自动调整--选择具体的调整方式 ...
- python 把Excel表格复制到Word保持格式不变
以往企业在写年报报表的时候,都需要现在Excel表格中汇总好多数据表格,如何再把每个表格区域复制粘贴到Word当中,最后再把Word转换成PDF公布在各大需求平台,那该如何实现呢? 下面我们拭目以待~ ...
- 如何把Excel表格转到Word,并保持格式不变?
转自:http://www.pinlue.com/article/2021/03/1503/1711560197548.html
- 怎么把excel表格转换成word格式
工作中难免会有需要将Excel表格转换成Word文档的时候,可能大多数人的做法是直接将excel表格复制到word里,可是粘到Word后表的格式全变了,还得重新进行调整格式,这也太麻烦了,所以今天小编 ...
- 怎么把html表复制到word里,怎么把网页表格复制到word
在互联网时代我们经常要在网页中找资料,文字进行复制粘贴调整格式还好,但是有时网页中的表格复制到Word中,表格的边框线全没了,怎么办呢?那么下面就由学习啦小编给大家分享下把网页表格复制到word的技巧 ...
最新文章
- 计网链路层mac地址和ip地址缺一不可
- 【枭·音频】感同声受——《暗影火炬城》PS5 HD震动制作
- ElementUI分页组件的封装
- Android Studio开发基础之自定义View组件
- 乱码 设置界面_和平精英:压轴更新后BUG频出,设置界面崩盘,界面全白变乱码...
- asterisk for mipsel
- 递归算法思路以及题目总结(未完待续...)
- Mybatis 动态传入表名 字段名 的解决办法
- linux shell mysql版本,Linux中Shell操作MySQL
- Java操作MongoDB(聚合函数)向Mongo插入及查询数据
- Xshell 4登录脚本
- 【色彩管理】CMYK色彩模式详解
- 电子签章系统如何无代码接入第三方应用
- 解析 FBX 模型文件作为 Direct3D 的渲染模型
- GIMP 2.10.24 图片切片
- 飞机大战源码php,飞机大战源码 - 丁小未的个人页面 - OSCHINA - 中文开源技术交流社区...
- 背篼酥课堂第八课--APP开发--app图形化编程
- 一道简简单单的字节跳动算法面试题
- gettimeofday() 和 clock_gettime()函数 分析小结
- allure报告中去掉allure.title中自动拼接的参数
热门文章
- 【不误正业】win10透明任务栏,任务栏居中+桌面美化工具DeskGo
- python支持arcpy的版本_ArcPy开发IDE
- matlab qpsk调制 函数,MATLAB_QPSK调制与解调
- hive与mysql对比之max、group by、日志分析
- vex编程语言是基于c语言,vex机器人编程软件 vex机器人大赛
- 东芝打印机共享怎么设置_东芝2303am网络打印设置教程
- idea快捷键失效,快捷键不能用
- 交换机Vlan中 tagged和untagged的区别
- java的ascii码表_ASCII码表对照
- 软件质量保障之代码走查