本文共 3078 字,大约阅读时间需要 10 分钟。
首先,我们需要读取图片文件并将其添加到Excel工作簿中。以下是实现步骤:
// 读取图片文件byte[] imgBytes = System.IO.File.ReadAllBytes(@"CurvatureMaxPart1.bmp");// 添加图片到工作簿中int pictureIdx = wk.AddPicture(imgBytes, PictureType.PNG);
接下来,我们需要为插入的图片创建画部,并设置锚点以确定图片的位置。以下是详细步骤:
IDrawing patriarch = image_sheet.CreateDrawingPatriarch();
锚点由8个参数决定,分别表示起始单元格和终止单元格的坐标偏移量和坐标。以下是常见的设置示例:
int rowline = 1; // y方向int colline = 0; // x方向IClientAnchor anchor = patriarch.CreateAnchor( 0, // 起始单元格的X坐标偏移 0, // 起始单元格的Y坐标偏移 0, // 终止单元格的X坐标偏移 0, // 终止单元格的Y坐标偏移 colline + j + 1, // 起始单元格的列数 rowline + i + 1, // 起始单元格的行数 colline + 1 + j + 1, // 终止单元格的列数 rowline + 1 + 1 // 终止单元格的行数);
将设置好的锚点和图片索引结合,插入到指定位置:
IPicture pict = patriarch.CreatePicture(anchor, pictureIdx);
如果需要插入多张图片,可以重复上述步骤,确保每张图片的位置正确设置。
最后,将修改后的Excel文件保存到指定路径:
using (FileStream fs = File.OpenWrite("bbb2.xls")){ wk.Write(fs);} 以下是一个完整的插入图片的代码示例:
using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;namespace Test4NPIO{ class Program { static void Main(string[] args) { HSSFWorkbook wk = new HSSFWorkbook(); ISheet image_sheet = wk.CreateSheet("Images"); // 读取图片文件 byte[] imgBytes = System.IO.File.ReadAllBytes(@"CurvatureMaxPart1.bmp"); // 添加图片到工作簿中 int pictureIdx = wk.AddPicture(imgBytes, PictureType.PNG); // 创建画部 IDrawing patriarch = image_sheet.CreateDrawingPatriarch(); // 设置锚点 int rowline = 1; int colline = 0; for (int i = 0; i < 20; i++) { for (int j = 0; j < 7; j++) { IClientAnchor anchor = patriarch.CreateAnchor( 0, 0, 0, 0, colline + j + 1, rowline + i + 1, colline + 1 + j + 1, rowline + 1 + 1 ); IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); } } // 读取txt文件并写入Confidence表 string[] txtLines = File.ReadAllLines(@"C:\Users\29939\Desktop\当前项目文件\res\data.txt"); for (int i = 0; i < txtLines.Length; ++i) { string[] line = txtLines[i].Split(','); IRow dataRow = confidence_sheet.CreateRow(i); for (int j = 0; j < line.Length; j++) { ICell cell = dataRow.CreateCell(j + 1); cell.SetCellValue(line[j]); cell.CellStyle = cellStyle; } } // 保存Excel文件 using (FileStream fs = File.OpenWrite("bbb2.xls")) { wk.Write(fs); } } }} 通过以上步骤,您可以成功在Excel表格中插入多张图片,并管理图片的位置和格式。
转载地址:http://sejfk.baihongyu.com/