node.js读取Excel数据(下载图片)的方法示例
这篇文章将介绍如何使用Node.js来读取Excel数据和下载Excel中的图片。我们将使用node-xlsx
模块来处理Excel数据,使用request
模块下载图片。
步骤一:安装依赖
我们需要安装node-xlsx
和request
模块来处理Excel数据和下载图片。从命令行安装它们:
npm install node-xlsx request
步骤二:读取Excel数据
在代码中,我们将使用node-xlsx
模块来读取Excel数据。这个模块支持.xls
和.xlsx
格式。我们需要将Excel文件中的数据读取到数组中,然后使用console.log()
函数在控制台输出它们。
const xlsx = require('node-xlsx');
const filePath = './example.xlsx';
const sheetName = 'Sheet1';
const workSheet = xlsx.parse(filePath).find((sheet) => sheet.name === sheetName);
const data = workSheet.data;
console.log(data);
上面的代码中,我们使用node-xlsx
模块解析Excel文件,然后选中特定的工作表,最终得到了所有数据存储在data
数组中。我们可以在控制台输出这些数据。
步骤三:下载Excel中的图片
在代码中,我们将使用request
模块下载Excel中的图片。我们需要为Excel文件中的每个图片生成一个唯一的文件名,并将其保存在磁盘上。
const xlsx = require('node-xlsx');
const request = require('request');
const fs = require('fs');
const path = require('path');
const filePath = './example.xlsx';
const sheetName = 'Sheet1';
const workSheet = xlsx.parse(filePath).find((sheet) => sheet.name === sheetName);
const data = workSheet.data.slice(1);
const imgDir = './img';
if (!fs.existsSync(imgDir)) {
fs.mkdirSync(imgDir);
}
for (let i = 0; i < data.length; i++) {
const imgUrl = data[i][2];
if (imgUrl) {
const imgName = `${i}${path.extname(imgUrl)}`;
const imgPath = path.join(imgDir, imgName);
request.get({
url: imgUrl,
encoding: null
}, (error, response, body) => {
if (!error && response.statusCode === 200) {
fs.writeFileSync(imgPath, body);
} else {
console.error(`Error downloading image ${imgUrl}`);
}
});
}
}
上面的代码中,我们首先读取Excel文件,获取数据数组,然后遍历每个数据项。我们从每个数据项中获取图片的URL,并使用request
模块下载它。我们将图片保存在./img
目录中,并为每个图片生成一个唯一的文件名。
示例一:读取单个工作表数据
const xlsx = require('node-xlsx');
const filePath = './example.xlsx';
const sheetName = 'Sheet1';
const workSheet = xlsx.parse(filePath).find((sheet) => sheet.name === sheetName);
const data = workSheet.data;
console.log(data);
上述示例演示了如何读取Excel文件中的单个工作表数据。我们使用node-xlsx
模块,指定Excel文件路径和工作表名称,然后将数据存储在数组中并输出到控制台。
示例二:下载Excel中的图片
const xlsx = require('node-xlsx');
const request = require('request');
const fs = require('fs');
const path = require('path');
const filePath = './example.xlsx';
const sheetName = 'Sheet1';
const workSheet = xlsx.parse(filePath).find((sheet) => sheet.name === sheetName);
const data = workSheet.data.slice(1);
const imgDir = './img';
if (!fs.existsSync(imgDir)) {
fs.mkdirSync(imgDir);
}
for (let i = 0; i < data.length; i++) {
const imgUrl = data[i][2];
if (imgUrl) {
const imgName = `${i}${path.extname(imgUrl)}`;
const imgPath = path.join(imgDir, imgName);
request.get({
url: imgUrl,
encoding: null
}, (error, response, body) => {
if (!error && response.statusCode === 200) {
fs.writeFileSync(imgPath, body);
} else {
console.error(`Error downloading image ${imgUrl}`);
}
});
}
}
上述示例演示了如何下载Excel文件中的图片。我们使用node-xlsx
模块解析Excel文件,遍历其中的每个数据项并获取图片的URL。我们使用request
模块下载这些图片,并将它们保存在磁盘上。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node.js读取Excel数据(下载图片)的方法示例 - Python技术站