多维表导出图片到线下表
目前多维表中的图片不能导出为线下表的内嵌单元格图片,文章的方法就是为了解决这个。
导出为压缩文件,选择第二个压缩选项,导出到哪里都行
解压压缩文档,然后在线下表中运行代码(代码放在文末了)
function EmbedImages() {
// var ws = ThisWorkbook.Sheets("总表采购对接(隐藏)");
var ws = ThisWorkbook.ActiveSheet;
var imageFolderPath = ThisWorkbook.Path + "\\"
temp = ['A']//看看哪些列需要导图片的,就把对应的列的英文填入中括号中
for (var alpha = 0; alpha < temp.length; alpha++) {
console.log(temp)
// 从第2行开始遍历列A中的每个单元格
for (var i = 2; i <= ws.Cells(ws.Rows.Count, temp[alpha]).End(xlUp).Row; i++) {
// 获取单元格的文本值
var imageName = ws.Range(temp[alpha] + i).Text;
var name = ws.Range(temp[alpha] + "1").Text
// 构建图片文件路径
var imagePath = imageFolderPath + name + "\\" + imageName;
// 获取单元格的位置信息
var top = ws.Range(temp[alpha] + i).Top;
var left = ws.Range(temp[alpha] + i).Offset(0, 1).Left;
try {
// ws.Shapes.AddPicture(imagePath, false, true, left, top, 100, 50);
// 插入图片的方式改为‘单元格内嵌’
ws.Range(temp[alpha] + i).Offset(0, 0).GetRangeEx().InsertCellPicture(imagePath)
} catch (e) {
}
}
}
}