JavaScript 实现导入 JSON 文件并筛选出符合条件的内容并输出为文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JSON to XLSX</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.0/xlsx.full.min.js"></script>
</head>
<body>
    <h1>导入 JSON 文件并导出为 XLSX 文件</h1>
    <input type="file" id="jsonFile" accept=".json" />
    <button onclick="exportToXlsx()">导出为 XLSX</button>

    <script>
        function exportToXlsx() {
            const fileInput = document.getElementById('jsonFile');
            if (fileInput.files.length === 0) {
                alert('请先选择一个 JSON 文件');
                return;
            }

            const file = fileInput.files[0];
            const reader = new FileReader();
            reader.onload = function(event) {
                try {
                    const jsonData = JSON.parse(event.target.result);

                    // 验证jsonData是否为数组
                    if (!Array.isArray(jsonData)) {
                        alert('JSON 文件内容不是一个数组');
                        return;
                    }

                    // 提取需要的数据
                    const dataToExport = jsonData.map(item => ({
                        编号: item.fid,
                        房间: item.froomName
                    }));

                    // 将数据转换为工作表
                    const worksheet = XLSX.utils.json_to_sheet(dataToExport);

                    // 创建一个新的工作簿
                    const workbook = XLSX.utils.book_new();
                    XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

                    // 导出为xlsx文件
                    XLSX.writeFile(workbook, 'output.xlsx');
                    alert('XLSX文件已创建');
                } catch (error) {
                    alert('解析 JSON 文件时出错:' + error.message);
                }
            };
            reader.readAsText(file);
        }
    </script>
</body>
</html>

注意要是数组对象哦

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值