Jelajahi Sumber

导出的excel过滤没权限的内容

xujunjie 1 tahun lalu
induk
melakukan
bfc21e4ff1
2 mengubah file dengan 34 tambahan dan 11 penghapusan
  1. 34 2
      src/pages/PSRManage/detail.js
  2. 0 9
      src/utils/exportExcl.js

+ 34 - 2
src/pages/PSRManage/detail.js

@@ -635,8 +635,40 @@ const PSRDetail = () => {
 
   const exportExcl = (className) => {
     const luckyData = luckysheetRef.current?.toJson();
-    //只导出不隐藏的sheet页
-    const data = luckyData?.data.filter((item) => item.hide !== 1);
+    let data = [];
+    luckyData?.data.forEach((item) => {
+      let sheet = JSON.parse(JSON.stringify(item));
+      // 只导出不隐藏的sheet页
+      if (sheet.hide == 1) return;
+      let rows = [],
+        cols = [];
+
+      // 过滤隐藏的行
+      if (sheet.config.rowhidden) {
+        rows = Object.keys(sheet.config.rowhidden);
+        rows.forEach((row) => {
+          sheet.data[row] = sheet.data[row].map((_) => null);
+        });
+      }
+
+      // 过滤隐藏的列
+      if (sheet.config.colhidden) {
+        cols = Object.keys(sheet.config.colhidden);
+        cols.forEach((col) => {
+          sheet.data.forEach((row) => (row[col] = null));
+        });
+      }
+
+      //处理时间错乱问题,把v全部换成m显示值
+      sheet.data?.forEach((row) => {
+        row.forEach((cell) => {
+          if (!cell) return;
+          cell.v = cell.m;
+          delete cell.f;
+        });
+      });
+      data.push(sheet);
+    });
     console.log(data);
     exportExcel(data, className);
   };

+ 0 - 9
src/utils/exportExcl.js

@@ -36,15 +36,6 @@ export function getExcelBolob(luckysheet) {
 }
 
 export function exportExcel(luckysheet, value) {
-  //处理时间错乱问题,把v全部换成m显示值
-  luckysheet.forEach((sheetData) => {
-    sheetData?.celldata.forEach((cell) => {
-      if (cell?.v) {
-        cell.v.v = cell.v.m;
-      }
-    });
-  });
-  // return
   // 4.写入 buffer
   getExcelBolob(luckysheet).then((blob) => {
     console.log('导出成功!');