C# 将excel表格嵌入到Word中
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中的更多相关文章
- 功能区按钮调用Excel、PowerPoint、Word中的VBA宏:RunMacro
功能区按钮调用Excel.PowerPoint.Word中的VBA宏:RunMacro 众所周知,Excel.PPT.Word文档或加载宏文件中可以写很多过程和函数,调试的过程中当然可以按F8或F5直 ...
- 把EXECL表格导入到WORD中
一般我们在编写开发文档时需要进行表格导入导出,这里提供几种方法供参考. 法一: 打开EXECL,WORD软件,在需要导入表格的地方选择“插入” ,找到“对象选项: ”在对象对话框中点击“由文件创建”, ...
- excel 表格粘贴到word 显示不完整
左上角,十字点,右键,取消固定宽度即可:
- php 读取excel表格中的内容
<?php /** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/vi ...
- php网址显示excel表格内容
/** * excel表格内容在网页中显示 * * 首先需要下载PHPExcel 工具包 * 网址: http://phpexcel.codeplex.com/releases/view/119187 ...
- 简单Excel表格上传下载,POI
一.废话 Excel表格是office软件中的一员,几乎是使用次数最多的办公软件.所以在java进行企业级应用开发的时候经常会用到对应的上传下载便利办公. 目前,比较常用的实现Java导入.导出Exc ...
- Jquery ajax请求导出Excel表格
直接贴代码吧 $("#btn-export").click(function(){ var exportExcel = "export_excel"; data ...
- qt 操作excel表格
自己编写的一个Qt C++类,用于操作excel表格,在Qt中操作excel需在.pro中增加CONFIG+=qaxcontainer配置. 1.打开Excel:objExcel = new QAx ...
- C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表
调用word的com组件将400条数据导入word表格中耗时10分钟简直不能忍受,使用NPOI组件耗时4秒钟.但是NPOI中替换书签内容的功能不知道是不支持还是没找到. 辅助类 Excel表格数据与D ...
随机推荐
- js二进制与十进制互转
十进制转换为二进制: var num = 100; console.log(num.toString(2)); toString()方法可把一个 Number 对象转换为一个字符串,并返回结果. 语法 ...
- MySQL选择合适的数据类型
一.char和varchar char是固定长度的,查询速度比varchar速度快的多.char的缺点是浪费存储空间. 检索char列时,返回的结果会删除尾部空格,所以程序需要对为空格进行处理. 对于 ...
- TreeView 使用方法:(在View.Details模式下)
1.建立TreeView的標題 2.建立TreeView的Item 3.在TreeView的Item中的建立SubItem 如果將各部 ...
- 使用JDBC调用存储过程
DELIMITER $$ DROP PROCEDURE IF EXISTS `jdbc`.`addUser` $$ ),in birthday date,in money float,out pid ...
- 学习笔记:Hashtable和HashMap
学了这么些天的基础知识发现自己还是个门外汗,难怪自己一直混的不怎么样.但这样的恶补不知道有没有用,是不是过段时间这些知识又忘了呢?这些知识平时的工作好像都是随拿随用的,也并不是平时一点没有关注过这些基 ...
- 删除Mysql数据表中多余的重复记录的sql语句
数据表 sniper_tb 中存在主键 id,字段url,现需要在url字段上添加 unique,但由于url存在重复记录,导致添加失败. 如何删除表中多余的url重复记录,仅保持一条? 思路一 将 ...
- 备忘录:hadoop技术一点积累
1.hbase的rowkey是按字典排序的,我看有的资料建议rowkey设计不应该是自增的,应该和这个字典排序相关吧 2.hbase的数据存储是按照region来的,region的设计前段时间在坐飞机 ...
- ASP.NET MVC学前篇之Lambda表达式、依赖倒置
ASP.NET MVC学前篇之Lambda表达式.依赖倒置 前言 随着上篇文章的阅读,可能有的朋友会有疑问,比如(A.Method(xxx=>xx>yy);)类似于这样的函数调用语句,里面 ...
- [译]如何防止elasticsearch的脑裂问题
本文翻译自blog.trifork.com的博文 地址是http://blog.trifork.com/2013/10/24/how-to-avoid-the-split-brain-problem- ...
- 电脑桌面 IE 图标删除不了的解决方法
电脑换了系统之后想把桌面的IE浏览器给删掉,可是直接删除又删不掉,杀毒软件查杀也没有问题.找了很多方法,终于才把它给解决了.下面,就把我的方法分享给桌面ie图标删除不了的解决方法,希望能对大家有所帮助 ...