-

javascript导出Excel和layui导出Excel和exceljs库导出Excel(图文教程)

使用javascript导出Excel和layui导出Excel和exceljs库导出Excel
javascript写的没有layui导出效果好,一般使用layui.excal来导出Excel
javascript导出Excel
尝试一下>>
<script>
<!DOCTYPE html>
<html>

<head>
    <title>javascript 生成excel 并下载文件</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
    <h1>javascript 生成excel 并下载文件</h1>
    <button onclick="generateExcelAndDownload()">下载Excel</button>
    <script>
    function generateExcelAndDownload() {
        // 创建 Excel 数据
        var excelData = [
            ['Hello', 'World'],
            ['JavaScript', 'Excel'],
            ['Download', 'Example']
        ];

        // 创建 Excel 文件内容
        var excelContent = "data:application/vnd.ms-excel;charset=utf-8," + encodeURIComponent(convertToExcel(excelData));

        // 创建下载链接
        var downloadLink = document.createElement('a');
        downloadLink.href = excelContent;
        downloadLink.download = 'sample.xls';
        downloadLink.style.display = 'none';

        // 添加链接到文档并模拟点击
        document.body.appendChild(downloadLink);
        downloadLink.click();

        // 清理下载链接
        document.body.removeChild(downloadLink);
    }

    function convertToExcel(data) {
        var content = '';

        for (var row = 0; row < data.length; row++) {
            var rowData = data[row].join('\t');
            content += rowData + '\n';
        }

        return content;
    }
    </script>
</body>

</html>
layui导出Excel
layui导出Excel 尝试一下>>
导出表结果
尝试一下>>
<script>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>layui版excel下载</title>
    <script src="/layui/layui.js"></script>
    <script src="/layui/excel.min.js"></script>
</head>

<a href="javascript:exportExcel()">点击下载excel(layui版)</a>

<body>
    <script>
    //导出xls
    var excel = layui.excel;
    function exportExcel() {
        var exportData = [{ "i": "1", "ntype": "管理员", "guestname": "张三", "sex": "男"},
            { "i": "2", "ntype": "普通人员", "guestname": "小红", "sex": "女" },
            { "i": "3", "ntype": "其它人员", "guestname": "李四", "sex": "保密" }]
        //表头设置
        exportData.unshift({
            i: '编号',
            ntype: '类型',
            guestname: '姓名',
            sex: '男'


        });
        // console.log("exportData",exportData)
        //文件名称
        var title = '人员表' + new Date().getTime() + '.xls';
        // 意思是:A列宽度120px,B列40px...,具体宽度根据字段值实际长度设定
        var colConf = excel.makeColConfig({
            // '编号': 180 
            // ,'安全类': 400  
            // ,'guestname': 500  
            // ,'F': 620
        }, 80);
        excel.exportExcel({
            sheet1: exportData
        }, title, 'xls', {
            extend: {
                '!cols': colConf
            }
        });

   
    }
    </script>
</body>

</html>
exceljs库导出Excel
layui导出Excel
github地址: https://github.com/exceljs/exceljs
安装 npm install exceljs
尝试一下>>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>exceljs库导出Excel</title>
  <script src="exceljs.min.js"></script>
</head>
<body> 

    <h1>javascript 生成excel 并下载文件</h1>
    <button onclick="DownloadExcel()">下载Excel</button>
  <script>
 
// 创建ExcelJS的工作簿对象
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet 1');

// 在工作表中添加数据
worksheet.getCell('A1').value = 'Hello';
worksheet.getCell('B1').value = 'World';

worksheet.getCell('A2').value = '你好1';
worksheet.getCell('B2').value = '小明';


// 设置字段宽度
worksheet.columns = [
  { key: 'A', width: 15 },
  { key: 'B', width: 20 }
];

function DownloadExcel(){
  // 生成XLS文件
  workbook.xlsx.writeBuffer()
    .then((buffer) => {
      // 将buffer转换为Blob对象
      const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });

      // 创建下载链接
      const downloadLink = document.createElement('a');
      downloadLink.href = URL.createObjectURL(blob);
      downloadLink.download = 'example.xlsx';

      // 添加下载链接到DOM树中
      document.body.appendChild(downloadLink);

      // 模拟点击下载链接
      downloadLink.click();

      // 清理下载链接
      document.body.removeChild(downloadLink);
      URL.revokeObjectURL(downloadLink.href);
    })
    .catch((error) => {
      console.error('生成XLS文件时出错:', error);
    });
}

  </script>
</body>
</html>