博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 将excel表格嵌入到Word中
阅读量:6823 次
发布时间:2019-06-26

本文共 3087 字,大约阅读时间需要 10 分钟。

C# 将excel表格嵌入到Word

继续开扒,今天要实现的是使用C#将excel表格嵌入到Word中这个功能,将word表格导入到excel中我已经写过了,如有需要可参考我之前的文章,在开始前还有一点需要指出的是在我的这个示例中是将excel表格转换为图片,然后再嵌入至Word文档中。

为了展示一下效果,我做了一个简单的excel表格,请看源excel工作表截图:

                       

下面看看如何使用代码:

第一步:新建一个Visual C#控制台项目,添加引用并使用如下命名空间:

using System.Drawing;using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using Spire.Xls;

 

第二步:创建一个ConvertExcelToImage(string excelFile)方法,将excel的工作表转换为图片。 

static Image ConvertExcelToImage(string excelFile){    //创建一个excel workbook对象    Workbook workbook = new Workbook();    //加载excel文件    workbook.LoadFromFile(excelFile);    //获取第一个工作表    Worksheet sheet = workbook.Worksheets[0];    //获取第一个工作表的最后一行    int lastRow = sheet.LastRow;    //获取第一个工作表的最后一列    int lastColumn = sheet.LastColumn;    //将第一个工作表转换为图片    Image image = workbook.Worksheets[0].SaveToImage(1, 1, lastRow, lastColumn);    return image;}

 

第三步:在主函数内,新建一个word文档对象,并给它添加一个section和段落。

//新建一个word文档Document doc = new Document();//添加一个sectionSection section = doc.AddSection();//添加一个段落Paragraph paragraph = section.AddParagraph();

 

第四步:获取excel文件的路径,新建一个DocPicture类的对象,调用ConvertExcelToImage()方法将excel工作表转换为图片并加载该图片。

string excelfile = "Customers.xlsx";//新建一个DocPicture类的对象DocPicture pic = new DocPicture(doc);//将excel工作表转换为图片并加载pic.LoadImage(ConvertExcelToImage(excelfile));

 

第五步:将图片嵌入到Word文档的段落中。 

paragraph.AppendOleObject("Customers.xlsx", pic, Spire.Doc.Documents.OleObjectType.ExcelWorksheet);

 

第六步:保存文档。

doc.SaveToFile("Output.docx", Spire.Doc.FileFormat.Docx);

 

嵌入到word文档的效果图:

 

全部代码:

using System.Drawing;using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using Spire.Xls; namespace Embed_Excel_to_Word{    class Program    {        static Image ConvertExcelToImage(string excelFile)        {            //创建一个excel workbook对象            Workbook workbook = new Workbook();           //加载excel文件            workbook.LoadFromFile(excelFile);            //获取第一个工作表            Worksheet sheet = workbook.Worksheets[0];            //获取第一个工作表的最后一行            int lastRow = sheet.LastRow;            //获取第一个工作表的最后一列            int lastColumn = sheet.LastColumn;            //将第一个工作表转换为图片            Image image = workbook.Worksheets[0].SaveToImage(1, 1, lastRow, lastColumn);            return image;        }        static void Main(string[] args)        {            //新建一个word文档            Document doc = new Document();            //添加一个section            Section section = doc.AddSection();            //添加一个段落            Paragraph paragraph = section.AddParagraph();            //获取excel文件的路径            string excelfile = "Customers.xlsx";            //创建一个DocPicture类的对象pic            DocPicture pic = new DocPicture(doc);            //将excel工作表转换为图片并加载            pic.LoadImage(ConvertExcelToImage(excelfile));            //将图片嵌入到word文档中            paragraph.AppendOleObject("Customers.xlsx", pic, Spire.Doc.Documents.OleObjectType.ExcelWorksheet);            //保存word文档            doc.SaveToFile("Output.docx", Spire.Doc.FileFormat.Docx);        }    }}

 

总结:

需要注意的是E-iceblue的excel和word组件是两个独立的组件,一起使用会起冲突抛出异常,因此这里我使用的是组件,也就是添加office组件里的excel和word相关的dll文件作为引用。

转载地址:http://cugzl.baihongyu.com/

你可能感兴趣的文章
React + Antd + Mobx改进之前简单的todolist
查看>>
JS解惑-Object中的key是有序的么?
查看>>
JS面试之数组的几个不low操作
查看>>
Redis数据结构
查看>>
金三银四,所有人都应该知道的事
查看>>
SQLServer之触发器简介
查看>>
这个俄罗斯大神,又出新作品了!
查看>>
用vuepress搭建一个够自己用的博客
查看>>
AMD(中文版)
查看>>
Tomcat的web应用加载过程
查看>>
小程序挖坑之路
查看>>
MySQL 数据类型
查看>>
如何让textarea随着内容自适应高度
查看>>
用Flex实现常见的几种布局
查看>>
前端错误日志上报相关实践
查看>>
使用SQLAlchemy添加数据库数据时,db.session.commit()报错:InvalidRequestError: This Session'......
查看>>
吴恩达MachineLearning-week1
查看>>
java锁浅析
查看>>
Windows的Linux子系统Attempt~
查看>>
http协议&缓存-几个常见状态码
查看>>