本文将介绍以下内容:
假设我们有一个名为 "Read-write-excel-npoi.jpg" 的 JPEG 图片文件,我们将把它插入到 Excel 的第 5 行第 5 列(索引从 0 开始)。
以下是 aardio 实现代码:
import NPOI;
// 创建工作簿
var workbook = NPOI.XSSF.UserModel.XSSFWorkbook();
// 创建工作表
var sheet = workbook.CreateSheet("Sheet1");
// 读取图片文件
var imageData = string.loadBuffer("/read-write-excel-npoi.jpg");
// 添加图片到工作簿
var pictureIndex = workbook.AddPicture(imageData, NPOI.SS.UserModel.PictureType.JPEG);
// 获取创建助手
var helper = workbook.GetCreationHelper();
// 创建绘图对象
var drawing = sheet.CreateDrawingPatriarch();
// 创建锚点
var anchor = helper.CreateClientAnchor();
anchor.Col1 = 5; // 第5列
anchor.Row1 = 5; // 第5行
// 创建图片
var picture = drawing.CreatePicture(anchor, pictureIndex);
// 调整图片大小
picture.Resize();
// 保存工作簿
workbook.Write("/Result.xlsx");
下面是一个完整的示例,演示如何创建一个包含数据和图片的 Excel 文件:
import NPOI;
import JSON;
// 创建测试数据
var persons = {
{ ID="1001", Name="ABCD", City="City1", Country="USA" };
{ ID="1002", Name="PQRS", City="City2", Country="INDIA" };
{ ID="1003", Name="XYZZ", City="City3", Country="CHINA" };
{ ID="1004", Name="LMNO", City="City4", Country="UK" };
};
// 创建工作簿
var workbook = NPOI.XSSF.UserModel.XSSFWorkbook();
var sheet = workbook.CreateSheet("TestSheet1");
// 创建表头
var headerRow = sheet.CreateRow(0);
var columns = {"ID", "Name", "City", "Country"};
for(i=1; #columns; 1){
headerRow.CreateCell(i-1).SetCellValue(columns[i]);
}
// 填充数据行
for(i=1; #persons; 1){
var row = sheet.CreateRow(i);
var person = persons[i];
row.CreateCell(0).SetCellValue(person.ID);
row.CreateCell(1).SetCellValue(person.Name);
row.CreateCell(2).SetCellValue(person.City);
row.CreateCell(3).SetCellValue(person.Country);
}
// 添加图片
var imageData = string.loadBuffer("Read-write-excel-npoi.jpg");
var pictureIndex = workbook.AddPicture(imageData, NPOI.SS.UserModel.PictureType.JPEG);
var helper = workbook.GetCreationHelper();
var drawing = sheet.CreateDrawingPatriarch();
var anchor = helper.CreateClientAnchor();
anchor.Col1 = 5; // 第5列
anchor.Row1 = 5; // 第5行
var picture = drawing.CreatePicture(anchor, pictureIndex);
picture.Resize();
// 保存工作簿
workbook.Write("/Result.xlsx");
picture.Resize() 方法会自动调整图片大小以适应单元格通过以上代码,我们可以成功将图片插入到 Excel 文件的指定位置。在实际应用中,可以根据需要调整图片的位置和大小。