c# Aspose 图片处理(将Excel单元格中的图片拷贝到另一个Excel文件中)
来源:互联网 发布:pe我的世界矿物追踪js 编辑:程序博客网 时间:2024/05/16 07:41
Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入、导出数据非常方便。其中Aspose.Cells就是用来操作Excel的,功能有很多;我们接下来用来实现一个“将指定的XLS文件中、指定页签下的、指定单元格内的、图片拷贝到另一个XLS中的相应单元格内”的功能;
首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net
实现代码如下,具体含义请看代码注释:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Aspose.Cells; //新增的用于处理Excel表格的引用using Aspose.Cells.Drawing;using Aspose.Cells.Rendering;using System.IO;namespace Demo{ class Program { // 将指定的XLS文件中、指定页签下的、指定单元格内的、图片拷贝到另一个XLS中的相应单元格内 private void GetInfoBySheetName(string fileName1, string fileName2, string XlsSheetName) { Workbook m_XlsFileReader1 = new Workbook(FileName1); // xls文件1 Worksheet CurSheet1 = m_XlsFileReader1.Worksheets[XlsSheetName]; // xls文件中指定的页签 Workbook m_XlsFileReader2 = new Workbook(FileName2); // xls文件1 Worksheet CurSheet2 = m_XlsFileReader1.Worksheets[XlsSheetName]; // xls文件中指定的页签 int row = 5; // 行、列 int column = 5; MemoryStream mstream = null; // 内存流 string name = "图标"; // 图片名 string path = ""; //保存后的文件路径 double rowHeight = 13.5; //单元格行高 // 遍历文件1当前页中的所有图片,并找到指定图片进行保存 for (int i = 0; i < CurSheet1.Pictures.Count; i++) { // 找到指定单元格的图片 if (CurSheet1.Pictures[i].UpperLeftRow == row && CurSheet1.Pictures[i].UpperLeftColumn == column) { rowHeight = CurSheet1.Cells.GetRowHeight(row); // 获取单元格行高 SaveToStream(CurSheet1.Pictures[i], ref mstream); // 保存成内存流 SaveImagePath(CurSheet1.Pictures[i], name); // 保存成图片 continue; } } // 将图片拷贝到文件2指定页签下的指定位置 CurSheet2.Cells.SetRowHeight(row, rowHeight); // 设置单元格行高 CurSheet2.Pictures.Add(row, column, mstream); // 以流的方式进行拷贝 CurSheet2.Pictures.Add(row, column, path); // 以文件路径的方式进行拷贝 } // 保存成图片 private void SaveImagePath(Picture pic, string name, ref string path) { string picFormat = pic.ImageFormat.ToString(); picFormat = picFormat.ToLower(); ImageOrPrintOptions printOption = new ImageOrPrintOptions(); //图片格式 printOption.ImageFormat = pic.ImageFormat; string filePath = "D:\\新增资源表图标\\" + name + "." + picFormat; pic.ToImage(filePath, printOption); // 保存(参数为:文件路径名和图片格式) path = filePath; } // 保存成内存流 private void SaveToStream(Picture pic, ref MemoryStream mstream) { ImageOrPrintOptions printOption = new ImageOrPrintOptions(); //图片格式 printOption.ImageFormat = pic.ImageFormat; mstream = new MemoryStream(); pic.ToImage(mstream, printOption); // 保存(参数为:内存流和图片格式) } public static void Main() { Program program = new Program(); string file1 = "D:\\1.xlsx"; string file2 = "D:\\2.xlsx"; string sheetName = "图标"; program.GetInfoBySheetName(file1, file2, sheetName); Console.ReadKey(); } }}
阅读全文
0 0
- c# Aspose 图片处理(将Excel单元格中的图片拷贝到另一个Excel文件中)
- C#将文件中的图片复制到另一个文件中
- c# 将数据库(包括图片)备份到EXCEL中
- Excel表格怎么批量导出图片将文件中的图片导出到文件夹中
- Excel 单元格中插入图片
- C#控制台程序中使用剪贴板将Excel的单元格区域保存为图片
- 将图片写到excel中
- c# 将数据库(包括图片)备份到EXCEL中(原创)
- C#插入图片到Excel中
- EXCEL中图片处理
- C# Excel单元格合并及图片插入
- 将Excel中的图片URL地址转成图片文件
- java 实现 excel sheet 拷贝到另一个Excel文件中 poi
- C#导出图片到EXCEL
- C#导出图片到EXCEL
- C#和NPOI处理中的EXCEL中的图片
- 将控件中的数据输出保存到本地excel或word中,同时保存图片到本地(c#)
- 将控件中的数据输出保存到本地excel或word中,同时保存图片到本地(c#)
- 2964: Boss单挑战
- 上云实践之使用VPN网关轻松构建混合云
- Apache的Order Allow,Deny 详解
- DRDS向ADS数据迁移指南
- [bzoj2276][POI2011]Temperature(单调队列)
- c# Aspose 图片处理(将Excel单元格中的图片拷贝到另一个Excel文件中)
- PB数据窗口保存前删除空行
- java swing最简单实例(1) 一个空的JFrame
- 链表各类操作详解
- Mysql 定时器 根据订单的不同的状态进行超时判断并且修改
- 用Annotation简化Preference存储
- Mina--结构分析
- jdbcType与javaType的对应关系
- 实验说明为什么DataGuard需要设置force logging