-first commit
This commit is contained in:
35
xecel/index.js
Normal file
35
xecel/index.js
Normal file
@@ -0,0 +1,35 @@
|
||||
const XLSX = require('xlsx');
|
||||
const fs = require('fs');
|
||||
|
||||
const workbook = XLSX.readFile('input.xlsx');
|
||||
const sheet = workbook.Sheets[workbook.SheetNames[0]];
|
||||
const data = XLSX.utils.sheet_to_json(sheet);
|
||||
|
||||
// สร้าง map รวมยอด
|
||||
const summary = {};
|
||||
|
||||
data.forEach(row => {
|
||||
const project = row['โครงการ'];
|
||||
const dept = row['แผนกวิชา'];
|
||||
const budget = Number(row['งบประมาณ']) || 0;
|
||||
|
||||
if (!summary[project]) summary[project] = {};
|
||||
if (!summary[project][dept]) summary[project][dept] = 0;
|
||||
|
||||
summary[project][dept] += budget;
|
||||
});
|
||||
|
||||
// แปลงกลับเป็น array สำหรับ export
|
||||
const result = [];
|
||||
Object.keys(summary).forEach(project => {
|
||||
const row = { โครงการ: project, ...summary[project] };
|
||||
result.push(row);
|
||||
});
|
||||
|
||||
// เขียน Excel
|
||||
const newSheet = XLSX.utils.json_to_sheet(result);
|
||||
const newBook = XLSX.utils.book_new();
|
||||
XLSX.utils.book_append_sheet(newBook, newSheet, 'Summary');
|
||||
XLSX.writeFile(newBook, 'output.xlsx');
|
||||
|
||||
console.log('✅ สรุปเสร็จแล้ว → output.xlsx');
|
||||
Reference in New Issue
Block a user