mcpField
P
processing-excel-files

processing-excel-files

github.com/zgldh文档处理8387 次安装38 周前更新
代码仓库

关于 processing-excel-files

Processing Excel Files 是使用 xlsx-populate 编辑和处理 Excel 工作簿的 JavaScript 技能,同时保留原有格式。适用于需要处理公式、样式、工作表或模板报告的场景。

主要功能

  1. 01编辑工作簿并保留格式
  2. 02添加公式和样式
  3. 03创建和管理工作表
  4. 04合并并设置单元格格式
  5. 05将结果写入新文件

适用场景

  1. 01更新带格式的 Excel 工作簿
  2. 02为现有报告添加公式
  3. 03基于 Excel 模板生成报告

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zgldh/xlsx-populate-skill --skill processing-excel-files

安装后在 Claude Code 中输入/processing-excel-files确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

STYLES.md
BATCH-OPERATIONS.md
EXAMPLES.md
README.md
LICENSE
.gitignore
FORMULAS.md
package.json
examples/
basic-usage.js
excel-processor.js
quotation-editor.js

详细介绍

处理 Excel 文件

使用 xlsx-populate 库编辑和处理 Excel 文件,同时完美保留原有格式。

适用场景

  • 用户希望编辑现有 Excel 文件,同时不破坏格式
  • 处理具有复杂布局或合并单元格的 .xlsx 文件
  • 需要向现有文件添加公式、样式或新工作表
  • 根据模板创建 Excel 报告

不适用场景

  • 只需读取 Excel 中的数据(建议改用 xlsx 库,以获得更好的性能)
  • 从零创建简单的 Excel 文件,且无需考虑格式

快速入门

const XlsxPopulate = require('xlsx-populate');

// Load and edit
const workbook = await XlsxPopulate.fromFileAsync('input.xlsx');
workbook.sheet(0).cell('A1').value('Updated');
await workbook.toFileAsync('output.xlsx');

安装

npm install xlsx-populate

核心操作

1. 加载并保留格式
const workbook = await XlsxPopulate.fromFileAsync('file.xlsx');
const sheet = workbook.sheet(0);

// All original formatting is preserved automatically
sheet.cell('A1').value('New Value');
await workbook.toFileAsync('output.xlsx');
2. 添加公式
// Use formulas, not hardcoded values
sheet.cell('D10').formula('=SUM(D2:D9)');
sheet.cell('E5').formula('=(C5-B5)/B5');  // Growth rate
3. 应用样式
sheet.cell('A1').style({
  bold: true,
  fontSize: 14,
  fill: '4472C4',
  fontColor: 'FFFFFF'
});
4. 管理工作表
// Add new sheet
const newSheet = workbook.addSheet('Summary');

// Reorder sheets
workbook.sheets()[2].move(0);

// Rename sheet
workbook.sheet(0).name('Cover Page');
5. 合并单元格
sheet.range('A1:D1').merged(true);
sheet.range('A1:D1').style({
  horizontalAlignment: 'center'
});

高级模式

批量写入数据:有关大型数据集处理,请参阅 [BATCH-OPERATIONS.md]
公式模式:有关财务建模规范,请参阅 [FORMULAS.md]
样式指南:有关配色方案和格式设置,请参阅 [STYLES.md]
完整示例:有关实际应用场景,请参阅 [EXAMPLES.md]

最佳实践

  1. 始终保留原文件:切勿覆盖源文件

    await workbook.toFileAsync('output.xlsx');  // ✅ New file
    // NOT: await workbook.toFileAsync('input.xlsx');  // ❌ Don't overwrite
    
  2. 使用公式进行计算:让 Excel 完成计算

    sheet.cell('B10').formula('=SUM(B2:B9)');  // ✅
    // NOT: sheet.cell('B10').value(calculateSum());  // ❌
    
  3. 妥善处理错误:

    try {
      const workbook = await XlsxPopulate.fromFileAsync('file.xlsx');
      // ... operations
      await workbook.toFileAsync('output.xlsx');
    } catch (error) {
      console.error('Excel operation failed:', error.message);
    }
    

常见问题

问:文件大小显著增加了?
答:这是正常现象——xlsx-populate 会保留更多元数据。如果文件大小至关重要,请使用 xlsx 库。

问:公式没有计算?
答:公式会被保留,但只有在 Excel 中打开文件时才会计算。使用 data_only=True 读取计算后的值。

问:如何检查合并的单元格?
答:const merges = sheet._mergeCells;

参考资料

评论

支持 Markdown