|
@@ -45,7 +45,49 @@ function exportExcel(luckysheet, name, excelType) {
|
|
|
});
|
|
|
return buffer;
|
|
|
}
|
|
|
-
|
|
|
+function exportBlobExcel(luckysheet, name, excelType) {
|
|
|
+ // 1.创建工作簿,可以为工作簿添加属性
|
|
|
+ const workbook = new Excel.Workbook();
|
|
|
+ // 2.创建表格,第二个参数可以配置创建什么样的工作表
|
|
|
+ luckysheet.forEach(function (table) {
|
|
|
+ // debugger
|
|
|
+ if (table.data.length === 0) return true;
|
|
|
+ const worksheet = workbook.addWorksheet(table.name);
|
|
|
+ const merge = (table.config && table.config.merge) || {}; //合并单元格
|
|
|
+ const borderInfo = (table.config && table.config.borderInfo) || {}; //边框
|
|
|
+ const columnWidth = (table.config && table.config.columnlen) || {}; //列宽
|
|
|
+ const rowHeight = (table.config && table.config.rowlen) || {}; //行高
|
|
|
+ const frozen = table.frozen || {}; //冻结
|
|
|
+ const rowhidden = (table.config && table.config.rowhidden) || {}; //行隐藏
|
|
|
+ const colhidden = (table.config && table.config.colhidden) || {}; //列隐藏
|
|
|
+ const filterSelect = table.filter_select || {}; //筛选
|
|
|
+ const hide = table.hide; //工作表 sheet 1隐藏
|
|
|
+ if (hide === 1) {
|
|
|
+ // 隐藏工作表
|
|
|
+ worksheet.state = "hidden";
|
|
|
+ }
|
|
|
+ setStyleAndValue(table.data, worksheet);
|
|
|
+ setMerge(merge, worksheet);
|
|
|
+ setBorder(borderInfo, worksheet);
|
|
|
+ setImages(table, worksheet, workbook);
|
|
|
+ setColumnWidth(columnWidth, worksheet);
|
|
|
+ //行高设置50导出后在ms-excel中打开显示25,在wps-excel中打开显示50这个bug不会修复
|
|
|
+ setRowHeight(rowHeight, worksheet, excelType);
|
|
|
+ setFrozen(frozen, worksheet);
|
|
|
+ setRowHidden(rowhidden, worksheet);
|
|
|
+ setColHidden(colhidden, worksheet);
|
|
|
+ setFilter(filterSelect, worksheet);
|
|
|
+ return true;
|
|
|
+ });
|
|
|
+ const buffer = workbook.xlsx.writeBuffer().then((data) => {
|
|
|
+ // console.log('data', data)
|
|
|
+ const blob = new Blob([data], {
|
|
|
+ type: "application/vnd.ms-excel;charset=utf-8",
|
|
|
+ });
|
|
|
+ return blob;
|
|
|
+ });
|
|
|
+ return buffer;
|
|
|
+}
|
|
|
/**
|
|
|
* 列宽
|
|
|
* @param columnWidth
|
|
@@ -850,4 +892,4 @@ function colorRGBtoHex(color) {
|
|
|
var b = parseInt(rgb[2]);
|
|
|
return "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
|
|
|
}
|
|
|
-export { exportExcel };
|
|
|
+export { exportExcel, exportBlobExcel };
|