C# 在Aspose.Cells中插入由Byte[]转成的Image
时间: 2023-11-25 20:04:52 浏览: 112
在 Aspose.Cells 中,可以使用以下代码将 byte[] 转换为 Image 对象,并将其插入到 Excel 表格中:
```csharp
byte[] bytes = // 从某个地方获取 byte 数组
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
// 插入图片到指定单元格
int rowIndex = // 指定行索引
int colIndex = // 指定列索引
int pictureIndex = worksheet.Pictures.Add(rowIndex, colIndex, image);
```
这里使用了 MemoryStream 将 byte[] 转换为流,然后使用 Image.FromStream 方法将流转换为 Image 对象。然后使用 Aspose.Cells.Worksheet.Pictures.Add 方法将图片插入到指定单元格,并返回该图片在 Excel 中的索引,可以用于进一步操作该图片。
需要注意的是,Aspose.Cells 需要引用 Aspose.Words.Drawing 命名空间,以便正确处理图片。
相关问题
C# 在Aspose.Cells中插入由Byte[]转成的Image 详细代码
以下是一个完整的示例代码,演示了如何使用 Aspose.Cells 在 Excel 表格中插入由 byte[] 转换为 Image 的图片:
```csharp
using Aspose.Cells;
using Aspose.Words.Drawing;
using System.Drawing;
using System.IO;
namespace InsertImageToExcel
{
class Program
{
static void Main(string[] args)
{
// 创建 Workbook 对象并加载 Excel 文件
Workbook workbook = new Workbook("Sample.xlsx");
// 获取第一个工作表
Worksheet worksheet = workbook.Worksheets[0];
// 从文件中读取图片字节流
byte[] bytes = File.ReadAllBytes("Sample.png");
// 将字节流转换为 Image 对象
Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
// 插入图片到指定单元格
int rowIndex = 1;
int colIndex = 1;
int pictureIndex = worksheet.Pictures.Add(rowIndex, colIndex, image);
// 设置图片大小和位置
Picture pic = worksheet.Pictures[pictureIndex];
pic.WidthInch = 2;
pic.HeightInch = 2;
pic.Left = 100;
pic.Top = 100;
// 保存 Excel 文件
workbook.Save("Output.xlsx");
// 打开 Excel 文件
System.Diagnostics.Process.Start("Output.xlsx");
}
}
}
```
这段代码将 Sample.png 图片插入到 Sample.xlsx 文件的第一个工作表中的第一个单元格。图片的大小为 2 英寸 x 2 英寸,左上角位置距离单元格左上角坐标 (100, 100)。保存后会将文件输出到 Output.xlsx,然后自动打开该文件。需要注意的是,该示例代码需要引用 Aspose.Cells 和 Aspose.Words.Drawing 命名空间。
C# 在Aspose.Cells中插入由Byte[]转成的图片
可以使用以下代码将一个 Byte 数组插入到 Excel 工作表中:
```
using Aspose.Cells;
byte[] imageBytes = // 从某处获取图片的 Byte 数组
// 创建 Workbook 对象
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];
// 将 Byte 数组转换为 Image 对象
System.IO.MemoryStream ms = new System.IO.MemoryStream(imageBytes);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
// 将 Image 对象插入到 Excel 工作表中
int index = worksheet.Pictures.Add(0, 0, image);
Picture pic = worksheet.Pictures[index];
pic.Width = 400;
pic.Height = 400;
// 保存 Excel 文件
workbook.Save("path/to/file.xlsx", SaveFormat.Xlsx);
// 关闭 Workbook 对象
workbook.Dispose();
```
注意:使用 Aspose.Cells 需要先安装该库。可以通过 NuGet 包管理器安装 Aspose.Cells,或者从 Aspose 官网下载 Aspose.Cells 并手动添加引用。
阅读全文