以下示例演示如何在 aardio 中通过 NPOI 库将图片插入 Excel 文件。
import NPOI;
// 创建新的 XSSF 工作簿(适用于 .xlsx 格式)
var workbook = NPOI.XSSF.UserModel.XSSFWorkbook();
// 创建工作表并命名为"Pictures"
var sheet = workbook.CreateSheet("Pictures");
// 创建绘图对象(用于在工作表中插入图片)
var drawing = sheet.CreateDrawingPatriarch();
/*
创建图片锚点定位对象
参数说明:dx1, dy1, dx2, dy2, col1, row1, col2, row2
- dx1/dy1: 图片左上角在单元格内的偏移量(单位:EMU)
- dx2/dy2: 图片右下角在单元格内的偏移量
- col1/row1: 起始单元格位置(列和行,从0开始计数)
- col2/row2: 结束单元格位置
*/
var anchor = NPOI.XSSF.UserModel.XSSFClientAnchor(0, 0, 0, 0, 2, 2, 3, 5);
// 设置锚点类型为"移动但不调整大小"
anchor.AnchorType = NPOI.SS.UserModel.AnchorType.MoveDontResize;
// 加载 PNG 图片到工作簿并获取图片ID
var imageId = loadPNGImage("/res/dotnet.png", workbook);
// 在工作表中创建图片
var pic = drawing.CreatePicture(anchor, imageId);
// 保存工作簿到文件
workbook.Write("/pictures.xlsx");
/*
加载 PNG 图片到工作簿的函数
参数:
- path: 图片文件路径
- wb: 工作簿对象
返回值:图片在工作簿中的ID
*/
function loadPNGImage(path, wb) {
// 读取图片文件为二进制数据
var buffer = string.loadBuffer(path);
// 将图片添加到工作簿并返回图片ID
return wb.AddPicture(buffer, NPOI.SS.UserModel.PictureType.PNG);
}
图片定位:
XSSFClientAnchor 用于确定图片在工作表中的位置和大小图片类型:
PictureType 枚举指定PNG, JPEG, DIB 等文件操作:
string.loadBuffer 直接读取文件为二进制数据Write 方法,参数可以是文件路径或流对象资源路径:
/res/ 表示应用程序根目录下的 res 文件夹/ 或 \ 开头的路径表示应用程序根目录这个示例展示了 NPOI 在 aardio 中的基本图片操作,你可以根据需要调整图片位置、大小和格式。