105 lines
2.8 KiB
JavaScript
105 lines
2.8 KiB
JavaScript
|
|
const fs = require('fs');
|
|||
|
|
const path = require('path');
|
|||
|
|
|
|||
|
|
// 要删除的企业列表
|
|||
|
|
const companiesToDelete = [
|
|||
|
|
'福建省长乐市金磊纺织有限公司',
|
|||
|
|
'福建顺大运动品有限公司',
|
|||
|
|
'福建鑫海冶金有限公司',
|
|||
|
|
'河北财商商贸有限公司',
|
|||
|
|
'湖南德元顺生物科技有限公司',
|
|||
|
|
'湖南福陆特科技发展有限公司',
|
|||
|
|
'湖南航祥机电科技有限公司',
|
|||
|
|
'湖南中邦恒盛医药有限公司',
|
|||
|
|
'石家庄北国人百集团有限责任公司',
|
|||
|
|
'皙悦(天津)文旅产业发展有限公司'
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// CSV文件路径
|
|||
|
|
const files = [
|
|||
|
|
'../公司介绍.csv',
|
|||
|
|
'../企业业务板块和内推岗位.csv',
|
|||
|
|
'../企业图片.csv'
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 简单的CSV解析函数(处理带引号的字段)
|
|||
|
|
function parseCSVLine(line) {
|
|||
|
|
const result = [];
|
|||
|
|
let current = '';
|
|||
|
|
let inQuotes = false;
|
|||
|
|
|
|||
|
|
for (let i = 0; i < line.length; i++) {
|
|||
|
|
const char = line[i];
|
|||
|
|
const nextChar = line[i + 1];
|
|||
|
|
|
|||
|
|
if (char === '"') {
|
|||
|
|
if (inQuotes && nextChar === '"') {
|
|||
|
|
// 转义的引号
|
|||
|
|
current += '"';
|
|||
|
|
i++;
|
|||
|
|
} else {
|
|||
|
|
// 切换引号状态
|
|||
|
|
inQuotes = !inQuotes;
|
|||
|
|
}
|
|||
|
|
} else if (char === ',' && !inQuotes) {
|
|||
|
|
// 字段分隔符
|
|||
|
|
result.push(current);
|
|||
|
|
current = '';
|
|||
|
|
} else {
|
|||
|
|
current += char;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
result.push(current);
|
|||
|
|
return result;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 处理每个文件
|
|||
|
|
files.forEach(file => {
|
|||
|
|
const filePath = path.join(__dirname, file);
|
|||
|
|
|
|||
|
|
if (!fs.existsSync(filePath)) {
|
|||
|
|
console.log(`⚠️ 文件不存在: ${file}`);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
console.log(`\n📄 处理文件: ${file}`);
|
|||
|
|
|
|||
|
|
// 读取文件内容
|
|||
|
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|||
|
|
const lines = content.split('\n');
|
|||
|
|
|
|||
|
|
// 保留第一行(表头)
|
|||
|
|
const header = lines[0];
|
|||
|
|
const dataLines = lines.slice(1);
|
|||
|
|
|
|||
|
|
// 过滤掉要删除的企业
|
|||
|
|
const filteredLines = [];
|
|||
|
|
let deletedCount = 0;
|
|||
|
|
|
|||
|
|
for (let i = 0; i < dataLines.length; i++) {
|
|||
|
|
const line = dataLines[i].trim();
|
|||
|
|
if (!line) continue; // 跳过空行
|
|||
|
|
|
|||
|
|
// 解析CSV行
|
|||
|
|
const fields = parseCSVLine(line);
|
|||
|
|
const companyName = fields[0]; // 第一列是企业名称
|
|||
|
|
|
|||
|
|
// 检查是否需要删除
|
|||
|
|
if (companiesToDelete.includes(companyName)) {
|
|||
|
|
console.log(` ❌ 删除: ${companyName}`);
|
|||
|
|
deletedCount++;
|
|||
|
|
} else {
|
|||
|
|
filteredLines.push(line);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 写回文件
|
|||
|
|
const newContent = [header, ...filteredLines].join('\n');
|
|||
|
|
fs.writeFileSync(filePath, newContent, 'utf-8');
|
|||
|
|
|
|||
|
|
console.log(` ✅ 完成: 删除了 ${deletedCount} 家企业`);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('\n\n🎉 所有文件处理完成!');
|