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();
//添加一个section
Section 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组件,也就是添加office组件里的excel和word相关的dll文件作为引用。

C# 将excel表格嵌入到Word中的更多相关文章

  1. 功能区按钮调用Excel、PowerPoint、Word中的VBA宏:RunMacro

    功能区按钮调用Excel.PowerPoint.Word中的VBA宏:RunMacro 众所周知,Excel.PPT.Word文档或加载宏文件中可以写很多过程和函数,调试的过程中当然可以按F8或F5直 ...

  2. 把EXECL表格导入到WORD中

    一般我们在编写开发文档时需要进行表格导入导出,这里提供几种方法供参考. 法一: 打开EXECL,WORD软件,在需要导入表格的地方选择“插入” ,找到“对象选项: ”在对象对话框中点击“由文件创建”, ...

  3. excel 表格粘贴到word 显示不完整

    左上角,十字点,右键,取消固定宽度即可:

  4. php 读取excel表格中的内容

    <?php /** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/vi ...

  5. php网址显示excel表格内容

    /** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/view/119187 ...

  6. 简单Excel表格上传下载,POI

    一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...

  7. Jquery ajax请求导出Excel表格

    直接贴代码吧 $("#btn-export").click(function(){ var exportExcel = "export_excel"; data ...

  8. qt 操作excel表格

     自己编写的一个Qt C++类,用于操作excel表格,在Qt中操作excel需在.pro中增加CONFIG+=qaxcontainer配置. 1.打开Excel:objExcel = new QAx ...

  9. C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表

    调用word的com组件将400条数据导入word表格中耗时10分钟简直不能忍受,使用NPOI组件耗时4秒钟.但是NPOI中替换书签内容的功能不知道是不支持还是没找到. 辅助类 Excel表格数据与D ...

随机推荐

  1. SQL Server 里的递归查询

    http://www.360doc.com/content/13/0607/11/8463843_291221684.shtml

  2. iOS8中定位服务的变化(CLLocationManager协议方法不响应,无法回掉GPS方法,不出现获取权限提示)

    最近在写一个LBS的项目的时候,因为考虑到适配iOS8,就将项目迁移到Xcode6.0.1上,出现了不能正常获取定位服务权限的问题. self.manger = [[CLLocationManager ...

  3. PHP基础面试题

    1.PHP的意思? 答:PHP是一个基于服务端来创建动态网站的脚本语言,您可以用PHP和HTML生成网站主页 2.谈谈asp,php,jsp的优缺点? 答:ASP全名Active Server Pag ...

  4. Daily Scrum02 12.15

    今天会议主要还是大家汇报进度与任务.由于团队中有两位成员在周一会有其他事情处理,暂不分配任务,因而这些事情要交给其他成员处理…… 由于要反复修改,查看效果,所以要花费很长的时间,但大家最近都很忙,我们 ...

  5. WebService的开发、部署、调用

    本文参考其它文章和自己解决中间问题的经历记录,以C#开发WebService为例子,欢迎探讨: 一.C#开发WebService 在visual studio中新建ASP.NET Web服务应用程序, ...

  6. 使用Spring JdbcTemplate实现数据库操作

    今天我来演示 关于JDBCTemplate实现对数据库的查询和添加 首先是添加 第一步大家都知道 创建一个实体类 然后写一个方法 把实体类当参数传进去 在实现这个接口 JdbcDaoSupport这个 ...

  7. IOS第一天-新浪微博 - 框架的搭建

    *************HWAppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWith ...

  8. 嵌入式的重要平台 .NET Micro Framework

    曾经辉煌的巨人PC界渐渐走向下坡路,而智能手机圈则没完没了般地争个你死我活.随着智能手机的广泛普及,不少商家为了不坐以待毙而纷纷开始涉足与穿戴式设备--智能手表(具体参见智能手表时代还有多远). 我们 ...

  9. mysql字符串处理例子

    项目中用到的,要判断表中某个字段的某几位,若为某个值则替换,用到了几个典型的字符串操作,记录备注实现方案如下: 备注:如果替代字符串是唯一的话,可以用replace,这里用的是concat拼接. DE ...

  10. iOS开发系列--视图切换

    概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单.在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController ...