智表 ZCELL:纯前端 Excel 导入导出的高效解决方案,让数据处理更轻松

在当今数字化时代,数据处理已成为各行各业日常工作的重要组成部分,而 Excel 作为常用的数据处理工具,其导入导出功能的高效性和便捷性直接影响着工作效率。传统的 Excel 导入导出往往需要依赖后端服务,不仅流程繁琐,还容易出现数据传输延迟、兼容性差等问题,给工作人员带来诸多困扰。不过,现在有了智表ZCELL,这些问题都将迎刃而解。智表 ZCELL 凭借纯前端实现 Excel 导入导出的强大能力,为用户带来了全新的数据处理体验,让数据操作更加高效、便捷。

一、智表 ZCELL:开启纯前端 Excel 处理新时代

智表 ZCELL 是一款专为前端开发者打造的高性能表格组件,它打破了传统 Excel 处理对后端的依赖,实现了纯前端环境下 Excel 的导入与导出功能。无论是企业的数据分析报表生成、员工信息批量录入,还是个人日常的数据整理工作,智表 ZCELL 都能轻松应对。它具备出色的兼容性,支持主流的浏览器,无需担心因浏览器差异导致功能无法正常使用;同时,其轻量化的设计不会给项目带来过多的负担,保证了页面的流畅运行。

二、核心代码揭秘:简单几行,实现 Excel 导入导出

对于开发者而言,最关心的莫过于功能的实现难度。智表 ZCELL 在这方面表现十分出色,通过简洁易懂的 API 和核心代码,开发者能够快速集成 Excel 导入导出功能,大大降低了开发成本和时间成本。

(一)数据绑定核心代码

在页面加载时,初始化插件,并且初始化表格数据。以下是插件初始化和数据绑定核心代码示例:
 var zcell_io;
      let sheet;

      //页面加载时执行
      window.onload = function () {
        //初始化ZCELL
        var options = {
          container: document.getElementById("zcell-container"),
        };
        zcell_io = new ZCell.WorkBook(options);

        //初始化表格
        loaddata();
      };

      //加载数据
      function loaddata() {
        //初始化SHEET
        let sheetoption = {
          name: "sheet01", //表格名
          rowCount: 50, //行数
          colCount: 10, // 列数
          showRowLab: 0, //行标签不显示
          showColLab: 0, //列标签不显示
          rowHSize: 30, //默认行高
          colWSize: 100, //默认列宽
          freezeTop: 1, //顶部冻结
          freezeLeft: 1, //左侧冻结
          showFreezeLine: 0, //冻结线不显示
        };
        sheet = zcell_io.AppendSheet(sheetoption);

        //#region ------设置表头 文本和样式-----
        sheet.SetCellValue(0, 0, "序号");
        sheet.SetCellValue(0, 1, "书籍");
        sheet.SetCellValue(0, 2, "作者");
        sheet.SetCellValue(0, 3, "角色");
        sheet.SetCellValue(0, 4, "特征值1");
        sheet.SetCellValue(0, 5, "特征2");
        sheet.SetCellValue(0, 6, "特征3");
        sheet.SetCellValue(0, 7, "特征4");

        //表头样式
        let headstyle1 = {
          hAlign: "center",
          fontBold: 1,
          backColor: "#886600",
          fontColor: "#FFFFFF",
        };
        sheet.SetCellStyle(0, 0, headstyle1);
        sheet.SetCellStyle(0, 1, headstyle1);
        sheet.SetCellStyle(0, 2, headstyle1);
        sheet.SetCellStyle(0, 3, headstyle1);
        sheet.SetCellStyle(0, 4, headstyle1);
        sheet.SetCellStyle(0, 5, headstyle1);
        sheet.SetCellStyle(0, 6, headstyle1);
        sheet.SetCellStyle(0, 7, headstyle1);

        //设置列宽
        sheet.SetColWidth(3, 3, 200); //设置列宽

        //#endregion ------设置表头 文本和样式-----

        //#region --------准备数据集--------
        var datas = [];
        for (let i = 0; i < 50; i++) {
          let p = {
            cn: (i + 1).toString(),
            book: "西游记",
            auth: "吴承恩",
            name: "徒弟" + (i + 1),
            label1: "特征1" + (i + 1),
            label2: "特征2" + (i + 1),
            label3: "特征3" + (i + 1),
            label4: "特征4" + (i + 1),
          };
          datas.push(p);
        }

        //#endregion  --------准备数据集合--------

        //#region  --------准备数据源--------
        let option2 = {
          name: "data1",
          type: 1, //0- datacard,1是 datatable
          data: datas,
          startrow: 1, //  datatable 式需要设置
          startcol: "A", //  datatable 式需要设置
        };
        let ds = sheet.CreatDataSource(option2);
        ds.Mapping("A", "cn"); //列名必须大写,插入行列时,绑定关系会随动
        ds.Mapping("B", "book");
        ds.Mapping("C", "auth");
        ds.Mapping("D", "name");
        ds.Mapping("E", "label1");
        ds.Mapping("F", "label2");
        ds.Mapping("G", "label3");
        ds.Mapping("H", "label4");

        //#endregion  --------准备数据源--------

        //#region ------设置数据区列外观-------
        let colstyle1 = {
          hAlign: "center",
          fontColor: "#000000",
        };

        let colstyle3 = {
          hAlign: "left",
          fontColor: "#000000",
        };

        let colstyle2 = {
          hAlign: "center",
          fontColor: "#0000FF",
        };

        let border1 = {
          borderLeft: { color: "#808080", style: "thick" }, //左边框
          borderRight: { color: "#808080", style: "thick" }, //右边框
          borderTop: { color: "#808080", style: "thick" }, //上边框
          borderBottom: { color: "#808080", style: "thick" }, //下边框
        };

        //设置列单元格样式 可以对部分列单元格设置部分属性,也可以都不设置。
        // 支持以下设置: cellType 单元格类型; cellStyle 单元格样式; cellBorder 单元格边框;cellFormat 单元格数值格式
        ds.SetColumnInfo("A", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("B", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("C", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("D", { cellStyle: colstyle3, cellBorder: border1 });
        ds.SetColumnInfo("E", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("F", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("G", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("H", { cellStyle: colstyle1, cellBorder: border1 });

        //#endregion ------设置数据区列外观-------

        //绑定数据源
        sheet.BindDataSource(ds);
      }

  

(二)导出EXCEL核心代码

借助智表 ZCELL,只需几行代码就能完成 Excel 文件的导出,以下是 Excel 导出的核心代码示例:
//导出EXCEL
      function exptest() {
        var expoption = {
          filename: "导出测试文件", //文件名字,不能为空
          // expindex: 0, //导出表单索引,默认 -1为全部
          // expstyle: false, //导出样式 默认 true
          // expformula: false, //导出公式 默认 true
          // expfreeze: false, //导出冻结行列 默认 true
        };
        zcell_io.ExportExcel(expoption);
      }

 

只需点击导出按钮,智表 ZCELL 就会根据配置将表格数据生成 Excel 文件并自动下载到本地,整个过程快速高效,极大地提升了工作效率。
导出时,会原样导出字体、背景色、颜色、边框、公式、冻结行列等内容。
 

(三)导入EXCEL核心代码

借助智表 ZCELL,Excel 文件导入同样非常简单,以下是 Excel 导入的核心代码示例:
 //导入excel
      function imptest() {
        var input = document.createElement("input");
        input.type = "file";
        input.onchange = (e) => {
          var file = e.target.files[0];

          var impoption = {
            impfile: file, //导入文件
            // impstyle: false, //导入样式 默认 true
            // impformula: false, //导入公式 默认 true
            // impfreeze: false, //导入冻结行列 默认 true
          };

          zcell_io.ImportExcel(impoption);
        };

        input.click();
      }

 

通过上述代码,用户点击导入按钮后,即可选择本地 Excel 文件,智表 ZCELL 会自动解析文件内容,并将数据展示在表格中,整个过程无需后端参与,高效又便捷。
导入时,支持导入字体、背景色、颜色、边框、公式、冻结行列等内容。

(四)示例代码下载

上面的示例只有一个html文件,您可保存到本地,直接可以体验,文件代码如下:
      
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <title>导入导出</title>
    <meta
      name="description"
      content="基于智表ZCELL插件,实现纯前端Excel导入导出的高效解决方案,让数据处理更轻松。"
    />
    <!-- 添加zcell插件引用--start -->
    <script
      type="text/javascript"
      src="http://www.zcell.net/zcelldemo/pro/zcell/ZCell.min.js"
    ></script>
    <script
      type="text/javascript"
      src="http://www.zcell.net/zcelldemo/pro/zcell/ZCell.licenseKey.js"
    ></script>
    <!-- 添加zcell插件引用--end -->
  </head>
  <body>
    <style>
      .form-group {
        display: flex;
        gap: 12px;
        margin-bottom: 20px;
        flex-wrap: wrap;
      }

      .form-control {
        flex: 1;
        min-width: 200px;
        padding: 12px 15px;
        border: 1px solid #ddd;
        border-radius: 6px;
        font-size: 12px;
        transition: border-color 0.3s;
      }

      .form-control:focus {
        outline: none;
        border-color: #3498db;
      }

      .btn {
        padding: 8px 16px; /* 原为12px 20px,减小了上下内边距 */
        border: none;
        border-radius: 6px;
        cursor: pointer;
        font-size: 14px; /* 原为16px,稍微减小字号 */
        font-weight: 500;
        transition: all 0.3s;
        height: 36px; /* 新增固定高度 */
        display: inline-flex;
        align-items: center;
        justify-content: center;
      }

      .btn-primary {
        background-color: #3498db;
        color: white;
      }

      .btn-primary:hover {
        background-color: #2980b9;
      }

      .btn-danger {
        background-color: #e74c3c;
        color: white;
      }

      .btn-danger:hover {
        background-color: #c0392b;
      }

      .btn-success {
        background-color: #2ecc71;
        color: white;
      }

      .btn-success:hover {
        background-color: #27ae60;
      }

      .btn-warning {
        background-color: #f39c12;
        color: white;
      }

      .btn-warning:hover {
        background-color: #d35400;
      }
    </style>

    <div class="form-group">
      <button id="selBtn" class="btn btn-primary" onclick="exptest()">
        导出EXCEL
      </button>
      <button id="addBtn" class="btn btn-primary" onclick="imptest()">
        导入EXCEL
      </button>
    </div>

    <div>
      <!-- 插件容器 -->
      <div id="tt1" style="width: 100%; height: 100%">
        <div
          id="zcell-container"
          style="width: 100%; height: 500px; margin: auto"
        ></div>
      </div>
    </div>

    <script>
      var zcell_io;
      let sheet;

      //页面加载时执行
      window.onload = function () {
        //初始化ZCELL
        var options = {
          container: document.getElementById("zcell-container"),
        };
        zcell_io = new ZCell.WorkBook(options);

        //初始化表格
        loaddata();
      };

      //加载数据
      function loaddata() {
        //初始化SHEET
        let sheetoption = {
          name: "sheet01", //表格名
          rowCount: 50, //行数
          colCount: 10, // 列数
          showRowLab: 0, //行标签不显示
          showColLab: 0, //列标签不显示
          rowHSize: 30, //默认行高
          colWSize: 100, //默认列宽
          freezeTop: 1, //顶部冻结
          freezeLeft: 1, //左侧冻结
          showFreezeLine: 0, //冻结线不显示
        };
        sheet = zcell_io.AppendSheet(sheetoption);

        //#region ------设置表头 文本和样式-----
        sheet.SetCellValue(0, 0, "序号");
        sheet.SetCellValue(0, 1, "书籍");
        sheet.SetCellValue(0, 2, "作者");
        sheet.SetCellValue(0, 3, "角色");
        sheet.SetCellValue(0, 4, "特征值1");
        sheet.SetCellValue(0, 5, "特征2");
        sheet.SetCellValue(0, 6, "特征3");
        sheet.SetCellValue(0, 7, "特征4");

        //表头样式
        let headstyle1 = {
          hAlign: "center",
          fontBold: 1,
          backColor: "#886600",
          fontColor: "#FFFFFF",
        };
        sheet.SetCellStyle(0, 0, headstyle1);
        sheet.SetCellStyle(0, 1, headstyle1);
        sheet.SetCellStyle(0, 2, headstyle1);
        sheet.SetCellStyle(0, 3, headstyle1);
        sheet.SetCellStyle(0, 4, headstyle1);
        sheet.SetCellStyle(0, 5, headstyle1);
        sheet.SetCellStyle(0, 6, headstyle1);
        sheet.SetCellStyle(0, 7, headstyle1);

        //设置列宽
        sheet.SetColWidth(3, 3, 200); //设置列宽

        //#endregion ------设置表头 文本和样式-----

        //#region --------准备数据集--------
        var datas = [];
        for (let i = 0; i < 50; i++) {
          let p = {
            cn: (i + 1).toString(),
            book: "西游记",
            auth: "吴承恩",
            name: "徒弟" + (i + 1),
            label1: "特征1" + (i + 1),
            label2: "特征2" + (i + 1),
            label3: "特征3" + (i + 1),
            label4: "特征4" + (i + 1),
          };
          datas.push(p);
        }

        //#endregion  --------准备数据集合--------

        //#region  --------准备数据源--------
        let option2 = {
          name: "data1",
          type: 1, //0- datacard,1是 datatable
          data: datas,
          startrow: 1, //  datatable 式需要设置
          startcol: "A", //  datatable 式需要设置
        };
        let ds = sheet.CreatDataSource(option2);
        ds.Mapping("A", "cn"); //列名必须大写,插入行列时,绑定关系会随动
        ds.Mapping("B", "book");
        ds.Mapping("C", "auth");
        ds.Mapping("D", "name");
        ds.Mapping("E", "label1");
        ds.Mapping("F", "label2");
        ds.Mapping("G", "label3");
        ds.Mapping("H", "label4");

        //#endregion  --------准备数据源--------

        //#region ------设置数据区列外观-------
        let colstyle1 = {
          hAlign: "center",
          fontColor: "#000000",
        };

        let colstyle3 = {
          hAlign: "left",
          fontColor: "#000000",
        };

        let colstyle2 = {
          hAlign: "center",
          fontColor: "#0000FF",
        };

        let border1 = {
          borderLeft: { color: "#808080", style: "thick" }, //左边框
          borderRight: { color: "#808080", style: "thick" }, //右边框
          borderTop: { color: "#808080", style: "thick" }, //上边框
          borderBottom: { color: "#808080", style: "thick" }, //下边框
        };

        //设置列单元格样式 可以对部分列单元格设置部分属性,也可以都不设置。
        // 支持以下设置: cellType 单元格类型; cellStyle 单元格样式; cellBorder 单元格边框;cellFormat 单元格数值格式
        ds.SetColumnInfo("A", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("B", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("C", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("D", { cellStyle: colstyle3, cellBorder: border1 });
        ds.SetColumnInfo("E", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("F", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("G", { cellStyle: colstyle1, cellBorder: border1 });
        ds.SetColumnInfo("H", { cellStyle: colstyle1, cellBorder: border1 });

        //#endregion ------设置数据区列外观-------

        //绑定数据源
        sheet.BindDataSource(ds);
      }

      //导出EXCEL
      function exptest() {
        var expoption = {
          filename: "导出测试文件", //文件名字,不能为空
          // expindex: 0, //导出表单索引,默认 -1为全部
          // expstyle: false, //导出样式 默认 true
          // expformula: false, //导出公式 默认 true
          // expfreeze: false, //导出冻结行列 默认 true
        };
        zcell_io.ExportExcel(expoption);
      }

      //导入excel
      function imptest() {
        var input = document.createElement("input");
        input.type = "file";
        input.onchange = (e) => {
          var file = e.target.files[0];

          var impoption = {
            impfile: file, //导入文件
            // impstyle: false, //导入样式 默认 true
            // impformula: false, //导入公式 默认 true
            // impfreeze: false, //导入冻结行列 默认 true
          };

          zcell_io.ImportExcel(impoption);
        };

        input.click();
      }
    </script>
  </body>
</html>

    

四、选择智表 ZCELL,开启高效数据处理之旅

在快节奏的工作环境中,高效的数据处理能力成为提升竞争力的关键。智表 ZCELL 以纯前端 Excel 导入导出为核心优势,不仅简化了开发流程,降低了开发成本,还能显著提升用户的工作效率。无论是企业级的大型应用,还是个人的小型项目,智表 ZCELL 都能完美适配,为数据处理提供强有力的支持。
现在,智表 ZCELL 已正式上线,快来体验这款强大的表格组件,让 Excel 导入导出不再繁琐,让数据处理更加轻松高效!如需了解更多详细信息或获取试用权限,可访问智表 ZCELL 官方网站,开启你的高效数据处理之旅。
posted @ 2025-09-28 22:30  帆张芳显  阅读(13)  评论(0)    收藏  举报