引入using Aspose.Cells;
aspose.cells.dll的下载地址是http://download.csdn.net/detail/keyrainie/4547523
此demo只是讲出取Excel插入附件的原理,代码较简单
private void AsponseTest()
Workbook awork = new Workbook(textBox1.Text);
Worksheet asheet = awork.Worksheets[0];
Workbook awork2 = new Workbook();
Worksheet asheet2 = awork2.Worksheets[0];
try
{
byte[] imageData = null;
byte[] objectData = null;
string sourceFullName = "";
int upperLeftRow = 0;
int upperLeftColumn = 0;
int height = 0;
int width = 0;
bool displayAsIcon = false;
Aspose.Cells.Drawing.OleFileType fileType = Aspose.Cells.Drawing.OleFileType.Xls;
string progID = "";
//循环的去除插入的对象
{
//获取对象属性,为生成新的Excel插入对象使用
imageData = item.ImageData; //对象图标
objectData = item.ObjectData; //对象内同
sourceFullName = item.SourceFullName;
upperLeftRow = item.UpperLeftRow;
upperLeftColumn = item.UpperLeftColumn;
height = item.Height;
width = item.Width;
displayAsIcon = item.DisplayAsIcon;
fileType = item.FileType;
progID = item.ProgID;
asheet2.OleObjects.Add(upperLeftRow, upperLeftColumn, height, width, imageData);
//此功能是读取出一个图片,并另存为
MemoryStream outputImage = new MemoryStream(imageData, 0, (int)imageData.Length);
Image returnImage = Image.FromStream(outputImage);
pictureBox1.Image = returnImage;
File.WriteAllBytes(@"C:\Users\ZhangYu\Desktop\2.txt", objectData);
}
//生成新的Excel,插入附件,此方法暂时只是举例插入一个对象,若需要插入多个对象,则看情况改逻辑就可以
foreach (Aspose.Cells.Drawing.OleObject item in asheet2.OleObjects)
{
item.ObjectData = objectData;
item.SourceFullName = sourceFullName;
item.DisplayAsIcon = displayAsIcon;
item.FileType = fileType;
item.SetNativeSourceFullName(sourceFullName);
item.ProgID = progID;
}
int count = asheet.OleObjects.Count;
awork2.Save(targetPath);
}
catch (Exception ex)
{
}
本文介绍如何使用Aspose.Cells库从Excel中提取并重新插入OLE对象,包括图片和其他文件附件。通过C#实现,提供了详细的代码示例。
3297

被折叠的 条评论
为什么被折叠?



