C# 将excel表格嵌入到Word

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

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

下面看看如何使用代码:

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

  1. using System.Drawing;
  2. using Spire.Doc;
  3. using Spire.Doc.Documents;
  4. using Spire.Doc.Fields;
  5. using Spire.Xls;

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

  1. static Image ConvertExcelToImage(string excelFile)
  2. {
  3. //创建一个excel workbook对象
  4. Workbook workbook = new Workbook();
  5. //加载excel文件
  6. workbook.LoadFromFile(excelFile);
  7. //获取第一个工作表
  8. Worksheet sheet = workbook.Worksheets[0];
  9. //获取第一个工作表的最后一行
  10. int lastRow = sheet.LastRow;
  11. //获取第一个工作表的最后一列
  12. int lastColumn = sheet.LastColumn;
  13.  
  14. //将第一个工作表转换为图片
  15. Image image = workbook.Worksheets[0].SaveToImage(1, 1, lastRow, lastColumn);
  16. return image;
  17. }

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

  1. //新建一个word文档
  2. Document doc = new Document();
  3. //添加一个section
  4. Section section = doc.AddSection();
  5. //添加一个段落
  6. Paragraph paragraph = section.AddParagraph();

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

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

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

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

第六步:保存文档。

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

嵌入到word文档的效果图:

全部代码:

  1. using System.Drawing;
  2. using Spire.Doc;
  3. using Spire.Doc.Documents;
  4. using Spire.Doc.Fields;
  5. using Spire.Xls;
  6.  
  7. namespace Embed_Excel_to_Word
  8. {
  9. class Program
  10. {
  11. static Image ConvertExcelToImage(string excelFile)
  12. {
  13. //创建一个excel workbook对象
  14. Workbook workbook = new Workbook();
  15. //加载excel文件
  16. workbook.LoadFromFile(excelFile);
  17. //获取第一个工作表
  18. Worksheet sheet = workbook.Worksheets[0];
  19. //获取第一个工作表的最后一行
  20. int lastRow = sheet.LastRow;
  21. //获取第一个工作表的最后一列
  22. int lastColumn = sheet.LastColumn;
  23.  
  24. //将第一个工作表转换为图片
  25. Image image = workbook.Worksheets[0].SaveToImage(1, 1, lastRow, lastColumn);
  26. return image;
  27. }
  28.  
  29. static void Main(string[] args)
  30. {
  31. //新建一个word文档
  32. Document doc = new Document();
  33. //添加一个section
  34. Section section = doc.AddSection();
  35. //添加一个段落
  36. Paragraph paragraph = section.AddParagraph();
  37. //获取excel文件的路径
  38. string excelfile = "Customers.xlsx";
  39. //创建一个DocPicture类的对象pic
  40. DocPicture pic = new DocPicture(doc);
  41. //将excel工作表转换为图片并加载
  42. pic.LoadImage(ConvertExcelToImage(excelfile));
  43. //将图片嵌入到word文档中
  44. paragraph.AppendOleObject("Customers.xlsx", pic, Spire.Doc.Documents.OleObjectType.ExcelWorksheet);
  45.  
  46. //保存word文档
  47. doc.SaveToFile("Output.docx", Spire.Doc.FileFormat.Docx);
  48. }
  49. }
  50. }

总结:

需要注意的是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. Web Components初探

    本文来自 mweb.baidu.com 做最好的无线WEB研发团队 是随着 Web 应用不断丰富,过度分离的设计也会带来可重用性上的问题.于是各家显神通,各种 UI 组件工具库层出不穷,煞有八仙过海之 ...

  2. 在发送ajax请求时加时间戳或者随机数去除js缓存

    在发送ajax请求的时候,为了保证每次的都与服务器交互,就要传递一个参数每次都不一样,这里就用了时间戳 大家在系统开发中都可能会在js中用到ajax或者dwr,因为IE的缓存,使得我们在填入相同的值的 ...

  3. PMP备考_第五章_项目范围管理_实践思考

    项目范围管理 前言 今天学习项目范围管理的内容,深切的感受到了原单位在项目管理方面存在的问题,今天在这里做一个总结,既相当于对项目范围的一个学习整理,也相当于自己对项目实践过程中存在问题的一个思考. ...

  4. tableViewCell嵌套collectionView,动态高度

    方法有很多,有通过内容高度,经过代理回调,刷新的,甚至还有计算cell个数,然后根据cell大小计算的,这里推荐iOS 8新特性,通过AutoLayout,利用内容将cell撑起来; 关键代码: vi ...

  5. Django 搭建简易博客

    新增一个 APP 博客算是一个功能集,因此我们应将其体现为一个模块.这表现在 Django 应用里则是为其创建一个 APP Package.现在让 manage.py 中的 startapp 闪亮登场 ...

  6. CentOS6.4安装JDK1.7

    安装说明 1.安装环境: CentOS6.4 64位系统 2.安装方式:rpm安装 3.软 件 包:jdk-7u71-linux-x64.rpm 4.下载地址:http://www.oracle.co ...

  7. php-(/usr/local/php)安装编译选项

    ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ ...

  8. CSS基础篇之选择符3

    border(边框) 如何用CSS调出边框 我们给p标签加一个边框试一下 p{ border:1px solid #ccc:/*这是缩写*/ } 第一个值是为边框的宽度 第二个值是为边框线样式为直线 ...

  9. C#程序代码分析(第三周)

    刚开始看到这段程序,都不知道是什么东西,问过室友才知道是C#程序:但对C#一点都不了解,最基本的项目建设都不会,在室友的帮助下,以及在网上搜了一些资料,勉强算是完成了此次作业吧. using Syst ...

  10. MySQL 注册码

    最近开发是用MySQL数据库,之前安装后,每次打开Navicat Premium 都提示 “试用一个月”,“ 注册”,然后为了方便,就都选择了 试用的, 一个月后,就必须的输入注册码,(还有一个是 什 ...