@ -51,6 +51,7 @@
import _ from 'lodash'
import _ from 'lodash'
import dayjs from 'dayjs'
import dayjs from 'dayjs'
import * as XLSX from 'xlsx' ;
import * as XLSX from 'xlsx' ;
import ExcelJS from "exceljs" ;
import tablecomponent from "../components/tablecomponent.vue"
import tablecomponent from "../components/tablecomponent.vue"
import { ElMessage , ElMessageBox } from 'element-plus'
import { ElMessage , ElMessageBox } from 'element-plus'
export default {
export default {
@ -218,6 +219,9 @@ export default {
m : 0 / / Q u a n t i t y p e r c o n t a i n e r ( E G )
m : 0 / / Q u a n t i t y p e r c o n t a i n e r ( E G )
} )
} )
}
}
}
for ( let j = 0 ; j < itemList . length ; j ++ ) {
let storeItem = itemList [ j ] ;
if ( Number ( storeItem . k ) ) {
if ( Number ( storeItem . k ) ) {
itemTemp . push ( {
itemTemp . push ( {
g : storeItem . g , / / S t o r e
g : storeItem . g , / / S t o r e
@ -230,6 +234,9 @@ export default {
m : 0 / / Q u a n t i t y p e r c o n t a i n e r ( E G )
m : 0 / / Q u a n t i t y p e r c o n t a i n e r ( E G )
} )
} )
}
}
}
for ( let j = 0 ; j < itemList . length ; j ++ ) {
let storeItem = itemList [ j ] ;
if ( Number ( storeItem . l ) ) {
if ( Number ( storeItem . l ) ) {
itemTemp . push ( {
itemTemp . push ( {
g : storeItem . g , / / S t o r e
g : storeItem . g , / / S t o r e
@ -242,6 +249,9 @@ export default {
m : 0 / / Q u a n t i t y p e r c o n t a i n e r ( E G )
m : 0 / / Q u a n t i t y p e r c o n t a i n e r ( E G )
} )
} )
}
}
}
for ( let j = 0 ; j < itemList . length ; j ++ ) {
let storeItem = itemList [ j ] ;
if ( Number ( storeItem . m ) ) {
if ( Number ( storeItem . m ) ) {
itemTemp . push ( {
itemTemp . push ( {
g : storeItem . g , / / S t o r e
g : storeItem . g , / / S t o r e
@ -328,28 +338,74 @@ export default {
} ,
} ,
/ / 导 出 数 据
/ / 导 出 数 据
async exportData ( ) {
async exportData ( ) {
let that = this
let that = this ;
let listCopy = _ . cloneDeep ( that . fileData2 )
let listCopy = _ . cloneDeep ( that . fileData2 ) ;
/ / 创 建 一 个 新 的 表 头 数 组 , 将 不 需 要 的 表 头 替 换 为 空 格
/ / 创 建 一 个 新 的 表 头 数 组 , 将 不 需 要 的 表 头 替 换 为 空 格
let newHeaders = [ "Order" , "Sku" , "Description" , "Type of merchandise" , "Quantity to deliver" , "Store" , "Quantity of containers" , "Barcode" , "Quantity per container" , "Total" , "Cluster" , "" , "" , "" , "" ]
let newHeaders = [
let lilstLocal = [ ]
"Order" , "Sku" , "Description" , "Type of merchandise" ,
for ( let i = 0 ; i < listCopy . length ; i ++ ) {
"Quantity to deliver" , "Store" , "Quantity of containers" ,
let item = listCopy [ i ] ;
"Barcode" , "Quantity per container" , "Total" , "Cluster" ,
lilstLocal . push ( { ... item , 'Quantity to deliver' : item [ "Quantity to deliver" ] ? item [ "Quantity to deliver" ] . toFixed ( 3 ) : "" } )
"" , "" , "" , ""
}
] ;
let jsonWorkSheet = XLSX . utils . json_to_sheet ( lilstLocal ) ;
for ( let index = 0 ; index < newHeaders . length ; index ++ ) {
/ / 处 理 数 据 , 保 留 三 位 小 数
let element = newHeaders [ index ] ;
let lilstLocal = listCopy . map ( item => ( {
/ / 第 一 行 改 为 自 定 义 的 表 头
... item ,
jsonWorkSheet [ ` ${ XLSX . utils . encode_cell ( { c : index , r : 0 } )} ` ] . v = element
'Quantity to deliver' : item [ "Quantity to deliver" ] ? item [ "Quantity to deliver" ] . toFixed ( 3 ) : ""
}
} ) ) ;
let workBook = {
SheetNames : [ "sheet1" ] ,
/ / 创 建 一 个 新 的 工 作 簿 和 工 作 表
Sheets : {
let workbook = new ExcelJS . Workbook ( ) ;
[ "sheet1" ] : jsonWorkSheet ,
let worksheet = workbook . addWorksheet ( 'Sheet1' ) ;
}
} ;
/ / 设 置 表 头 样 式
XLSX . writeFile ( workBook , ` 数据表格管理 ${ dayjs ( ) . format ( "YYYY-MM-DD_HH-mm-ss" ) } .xls ` ) ;
newHeaders . forEach ( ( element , index ) => {
let cell = worksheet . getCell ( 1 , index + 1 ) ;
cell . value = element ;
cell . font = { name : 'Arial' , size : 10 , color : { argb : '000000' } } ;
cell . fill = { type : 'pattern' , pattern : 'solid' , fgColor : { argb : 'EEEEEE' } } ;
cell . alignment = { horizontal : 'center' , vertical : 'center' } ;
} ) ;
/ / 设 置 数 据 行 样 式
lilstLocal . forEach ( ( row , rowIndex ) => {
let rowKeys = Object . keys ( row ) ;
for ( let colIndex = 0 ; colIndex < rowKeys . length ; colIndex ++ ) {
let key = rowKeys [ colIndex ] ;
let value = row [ key ] ;
let cell = worksheet . getCell ( rowIndex + 2 , colIndex + 1 ) ;
cell . value = value ;
cell . font = { name : 'Arial' , size : 10 , color : { argb : '000000' } } ;
cell . alignment = { horizontal : 'center' , vertical : 'center' } ;
}
} ) ;
/ / 生 成 文 件 名
let fileName = ` 数据表格管理 ${ dayjs ( ) . format ( "YYYY-MM-DD_HH-mm-ss" ) } .xlsx ` ;
console . log ( ` 生成的文件名: ${ fileName } ` ) ;
/ / 写 入 文 件 ( 浏 览 器 端 )
function downloadExcel ( ) {
workbook . xlsx . writeBuffer ( )
. then ( data => {
const blob = new Blob ( [ data ] , { type : 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' } ) ;
const url = URL . createObjectURL ( blob ) ;
const a = document . createElement ( 'a' ) ;
a . href = url ;
a . download = fileName ;
document . body . appendChild ( a ) ;
a . click ( ) ;
document . body . removeChild ( a ) ;
URL . revokeObjectURL ( url ) ;
console . log ( '文件生成成功' ) ;
} )
. catch ( error => {
console . error ( '文件生成失败:' , error ) ;
} ) ;
}
downloadExcel ( ) ;
} ,
} ,
} ,
} ,
async mounted ( ) { } ,
async mounted ( ) { } ,