文章目录
- Excell 代码处理
- cvc格式
- xlsl格式
- 小结
Excell 代码处理
有时候要对excell进行分析,或者数据的导入导出,这个时候如果可以用代码读写分析操作那么会方便很多
cvc格式
CSV(Comma-Separated Values,逗号分隔值)是一种简单的文本文件格式,用于存储表格数据。每一行代表一条记录(或一行数据),而每条记录中的不同字段(列)由逗号分隔。CSV 文件常用于数据交换、导入/导出、以及在电子表格软件(如 Excel)中查看数据
csv样式
IDFV,DAY,LEVEL
748158A1-3A21-4673-A625-F6ECBCA5B7FF,1,20
748158A1-3A21-4673-A625-F6ECBCA5B7FF,1,30
下载处理插件
npm install csv-parser
处理表头
npm install csv-parser
读取csv
const fs = require('fs');
const csv = require('csv-parser');
// 创建一个可读流,读取文件 'example.txt'
const readableStream = fs.createReadStream('C:/Users/yu/Desktop/majia/majia.csv', { encoding: 'utf8' })
.pipe(csv());// 自动处理标题行,将每行转为对象
// 设置数据事件监听器
readableStream.on('data', (chunk) => {
console.log('收到一个数据块:', chunk);
});
// 设置结束事件监听器
readableStream.on('end', () => {
console.log('文件读取完成');
});
// 设置错误事件监听器
readableStream.on('error', (err) => {
console.error('读取文件时出错:', err);
});
对象写入csv
npm install fast-csv
const fs = require('fs');
const { write } = require('@fast-csv/format');
const records = [
{ IDFV: '748158A1-3A21-4673-A625-F6ECBCA5B7FF', DAY: 1, LEVEL: '20' },
{ IDFV: '748158A1-3A21-4673-A625-F6ECBCA5B7FF', DAY: 1, LEVEL: '30' }
];
const ws = fs.createWriteStream('output.csv');
write(records, { headers: true })
.pipe(ws)
.on('finish', () => {
console.log('CSV 文件已保存');
});
xlsl格式
略
const xlsx = require('xlsx');
/**
* json 转excell
* @param {*} jsonData
* @param {*} pathUrl
*/
function writeToExcell(jsonData, pathUrl) {
const ws = xlsx.utils.json_to_sheet(jsonData);
const wb = xlsx.utils.book_new();//创建一个新的工作簿
xlsx.utils.book_append_sheet(wb, ws, 'Sheet1');
//写入 Excel 文件
xlsx.writeFile(wb, pathUrl);
console.log('数据已写入 Excel 文件:' + pathUrl);
}
/**
* excell 转 json
* @param {*} url
* @returns
*/
function readXlsxToJson(url) {
// 读取 Excel 文件
const workbook = xlsx.readFile(url);
// 获取第一个工作表的名称
const sheetName = workbook.SheetNames[0];
// 获取工作表对象
const sheet = workbook.Sheets[sheetName];
// 将工作表数据转换为 JSON 格式
const data = xlsx.utils.sheet_to_json(sheet);
console.log(data);
return data
}
module.exports = { writeToExcell, readXlsxToJson }
小结
Experiential Learning