You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MarkLogic和JavaScript发送含REST API JSON生成的Excel附件的邮件?

使用MarkLogic + JavaScript发送带Excel附件的邮件

核心步骤

1. 准备Excel生成依赖

MarkLogic的Server-Side JavaScript支持引入npm模块,我们用xlsx库处理JSON到Excel的转换。先通过mlpm(MarkLogic包管理器)安装模块:

mlpm install xlsx

安装完成后,模块会部署到MarkLogic的Modules数据库,可直接在JS代码中require调用。

2. 从REST API获取JSON数据

用xdmp.httpGet调用目标API并解析响应:

// 调用REST API获取JSON数据
const apiResponse = xdmp.httpGet('http://your-api-endpoint', {
  headers: { 'Accept': 'application/json' }
});
const jsonDataset = JSON.parse(apiResponse.body.toString());

3. 将JSON转换为Excel二进制Buffer

封装转换函数,把JSON数据集转成Excel文件的二进制Buffer:

const XLSX = require('xlsx');

function convertJsonToExcel(jsonData) {
  // 将JSON转为工作表
  const worksheet = XLSX.utils.json_to_sheet(jsonData);
  // 创建工作簿并添加工作表
  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, '业务数据');
  // 生成二进制Buffer(xlsx格式)
  return XLSX.write(workbook, { type: 'buffer', bookType: 'xlsx' });
}

// 生成Excel Buffer
const excelBuffer = convertJsonToExcel(jsonDataset);

4. 构建邮件并发送

使用xdmp.sendMail函数,重点配置附件的contentType和encoding:

xdmp.sendMail({
  to: ['user@example.com'],
  from: 'noreply@your-domain.com',
  subject: 'API数据导出报告',
  // 支持HTML或纯文本正文
  body: '<h3>数据导出报告</h3><p>附件为从REST API获取的最新数据,格式为Excel。</p>',
  contentType: 'text/html',
  attachments: [
    {
      filename: 'api-data-report.xlsx',
      // Excel文件的MIME类型必须正确
      contentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
      content: excelBuffer,
      encoding: 'binary' // 对应二进制Buffer的编码方式
    }
  ]
});

关键注意事项

  • 权限配置:执行代码的用户需拥有send-mail权限,以及访问目标REST API的网络权限。
  • SMTP设置:MarkLogic需提前配置好SMTP服务器(通过管理界面或xdmp.setSmtpServer函数),否则无法发送邮件。
  • 附件完整性:如果Excel文件损坏,检查:
    • JSON数据格式是否合法(无嵌套过深或特殊字符问题)
    • contentType是否正确(不要用旧的application/vnd.ms-excel,这对应xls格式)
    • encoding是否设为binary(对应Buffer类型的内容)
  • 模块部署:如果require('xlsx')报错,确认模块已正确部署到Modules数据库的对应路径(通常是/node_modules/xlsx/)。

内容的提问来源于stack exchange,提问作者swat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:35:25