router.post('/import/xls', upload.uploadmy.single('imgFile'), async function (req, res) {
var fileurl = path.resolve(__dirname, "../") + "/" + req.file.path;
var workbook = new Excel.Workbook();
var baseurl = path.join(__dirname, '../uploads/' + moment().format('YYYYMMDD') + "/");
if (fs.existsSync(baseurl)) {
} else {
fs.mkdirSync(baseurl);
}
workbook.xlsx.readFile(fileurl)
.then(function () {
var worksheet = workbook.getWorksheet(1);
var imagelist = worksheet.getImages();
worksheet.eachRow(async function (row, rowNumber) {
if (rowNumber > 1) {
var obj = {};
obj.name = row.getCell(2).value;
if (obj.name != null) {
var imageid = "";
for (var i = 0; i < imagelist.length; i++) {
//寻找行 等于当前行的图片
if (parseInt(imagelist[i].range.tl.row) == (rowNumber - 1)) {
imageid = imagelist[i].imageId;
break;
}
}
console.log("imageid", imageid);
if (imageid !== "") {
var image = workbook.getImage(imageid);
var filename = uuid.v1() + "." + image.extension;
var imgurl = "/uploads/" + moment().format('YYYYMMDD') + "/" + filename;
var file = baseurl + filename;
await fs.writeFileSync(file, image.buffer);
obj.imglist = imgurl;
}
obj.imguser = row.getCell(20).value;
obj.descs = row.getCell(21).value;
await goods_model.add(obj);
}
}
});
res.json({
status: 200,
message: '上传成功',
})
});
})
nodejs 导入xls每列包含图片的解决方案
最新推荐文章于 2024-03-18 11:42:11 发布