- 实现TV1和TV2双大屏展示 - 集成ECharts数据可视化 - 实现实时数据刷新机制 - 添加刀具寿命管理模块 - 添加工单加工时长统计模块 - 添加加工中心7日工作时长统计模块 - 添加OEE分析、设备状态监控等功能 - 创建技术文档和使用说明书
1444 lines
25 KiB
JavaScript
1444 lines
25 KiB
JavaScript
/* eslint-disable */
|
|
require('script-loader!file-saver');
|
|
require('script-loader!@/vendor/Blob');
|
|
import XLSX from 'xlsx-style'
|
|
function generateArray(table) {
|
|
var out = [];
|
|
var rows = table.querySelectorAll('tr');
|
|
var ranges = [];
|
|
for (var R = 0; R < rows.length; ++R) {
|
|
var outRow = [];
|
|
var row = rows[R];
|
|
var columns = row.querySelectorAll('td');
|
|
for (var C = 0; C < columns.length; ++C) {
|
|
var cell = columns[C];
|
|
var colspan = cell.getAttribute('colspan');
|
|
var rowspan = cell.getAttribute('rowspan');
|
|
var cellValue = cell.innerText;
|
|
if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue;
|
|
|
|
//Skip ranges
|
|
ranges.forEach(function (range) {
|
|
if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {
|
|
for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null);
|
|
}
|
|
});
|
|
|
|
//Handle Row Span
|
|
if (rowspan || colspan) {
|
|
rowspan = rowspan || 1;
|
|
colspan = colspan || 1;
|
|
ranges.push({s: {r: R, c: outRow.length}, e: {r: R + rowspan - 1, c: outRow.length + colspan - 1}});
|
|
}
|
|
;
|
|
|
|
//Handle Value
|
|
outRow.push(cellValue !== "" ? cellValue : null);
|
|
|
|
//Handle Colspan
|
|
if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null);
|
|
}
|
|
out.push(outRow);
|
|
}
|
|
return [out, ranges];
|
|
};
|
|
|
|
function datenum(v, date1904) {
|
|
if (date1904) v += 1462;
|
|
var epoch = Date.parse(v);
|
|
return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);
|
|
}
|
|
|
|
function sheet_from_array_of_arrays(data, opts) {
|
|
var ws = {};
|
|
var range = {s: {c: 10000000, r: 10000000}, e: {c: 0, r: 0}};
|
|
for (var R = 0; R != data.length; ++R) {
|
|
for (var C = 0; C != data[R].length; ++C) {
|
|
if (range.s.r > R) range.s.r = R;
|
|
if (range.s.c > C) range.s.c = C;
|
|
if (range.e.r < R) range.e.r = R;
|
|
if (range.e.c < C) range.e.c = C;
|
|
var cell = {v: data[R][C]};
|
|
if (cell.v == null) continue;
|
|
var cell_ref = XLSX.utils.encode_cell({c: C, r: R});
|
|
|
|
if (typeof cell.v === 'number') cell.t = 'n';
|
|
else if (typeof cell.v === 'boolean') cell.t = 'b';
|
|
else if (cell.v instanceof Date) {
|
|
cell.t = 'n';
|
|
cell.z = XLSX.SSF._table[14];
|
|
cell.v = datenum(cell.v);
|
|
}
|
|
else cell.t = 's';
|
|
|
|
ws[cell_ref] = cell;
|
|
}
|
|
}
|
|
if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range);
|
|
return ws;
|
|
}
|
|
|
|
function Workbook() {
|
|
if (!(this instanceof Workbook)) return new Workbook();
|
|
this.SheetNames = [];
|
|
this.Sheets = {};
|
|
}
|
|
|
|
function s2ab(s) {
|
|
if (typeof ArrayBuffer !== 'undefined') {
|
|
var buf = new ArrayBuffer(s.length);
|
|
var view = new Uint8Array(buf);
|
|
for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
|
|
return buf;
|
|
} else {
|
|
var buf = new Array(s.length);
|
|
for (var i = 0; i != s.length; ++i) buf[i] = s.charCodeAt(i) & 0xFF;
|
|
return buf;
|
|
}
|
|
}
|
|
|
|
function format2Sheet(e, r, n, o) {
|
|
o = o || Object.keys(e[0]),
|
|
r = r || 0,
|
|
n = n || 0;
|
|
var a = {};
|
|
return e.map(function(e, a) {
|
|
return o.map(function(o, i) {
|
|
return Object.assign({},
|
|
{
|
|
v: e[o],
|
|
position: (i + r > 25 ? t.getCharCol(i + r) : String.fromCharCode(65 + (i + r))) + (a + 1 + n)
|
|
})
|
|
})
|
|
}).reduce(function(e, r) {
|
|
return e.concat(r)
|
|
}).forEach(function(e, r) {
|
|
return a[e.position] = {
|
|
v: e.v
|
|
}
|
|
}),
|
|
a
|
|
}
|
|
function getCharCol(n) {
|
|
let temCol = '',
|
|
s = '',
|
|
m = 0
|
|
while (n > 0) {
|
|
m = n % 26 + 1
|
|
s = String.fromCharCode(m + 64) + s
|
|
n = (n - m) / 26
|
|
}
|
|
return s
|
|
}
|
|
export function export_table_to_excel(id) {
|
|
var theTable = document.getElementById(id);
|
|
var oo = generateArray(theTable);
|
|
var ranges = oo[1];
|
|
|
|
/* original data */
|
|
var data = oo[0];
|
|
var ws_name = "SheetJS";
|
|
|
|
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
|
|
|
/* add ranges to worksheet */
|
|
// ws['!cols'] = ['apple', 'banan'];
|
|
ws['!merges'] = ranges;
|
|
|
|
/* add worksheet to workbook */
|
|
wb.SheetNames.push(ws_name);
|
|
wb.Sheets[ws_name] = ws;
|
|
|
|
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'});
|
|
|
|
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), "test.xlsx")
|
|
}
|
|
|
|
export function export_json_to_excel(Data, Title, cell) { // 数据,标题,单元格坐标
|
|
const data = {
|
|
"!ref": "A1:I28", // cellRangecjn
|
|
"!merges": [
|
|
{
|
|
"s": { "c": 3, "r": 23 },
|
|
"e": { "c": 6, "r": 23 }
|
|
},
|
|
{
|
|
"s": { "c": 3, "r": 24 },
|
|
"e": { "c": 6, "r": 24 }
|
|
},
|
|
{
|
|
"s": { "c": 3, "r": 25 },
|
|
"e": { "c": 6, "r": 25 }
|
|
},
|
|
{
|
|
"s": { "c": 6, "r": 26 },
|
|
"e": { "c": 8, "r": 26 }
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 18
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 18
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 19
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 19
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 20
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 20
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 21
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 21
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 22
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 22
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 22
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 22
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 23
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 23
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 24
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 24
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 25
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 25
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 26
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 26
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 6
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 6
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 7
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 7
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 8
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 8
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 9
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 9
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 10
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 10
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 11
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 11
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 12
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 12
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 13
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 13
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 14
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 14
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 15
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 15
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 16
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 16
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 17
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 17
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 17
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 17
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 18
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 18
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 19
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 19
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 20
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 20
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 21
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 21
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 12
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 12
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 13
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 13
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 14
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 14
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 15
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 15
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 16
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 16
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 7
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 7
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 8
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 8
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 9
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 9
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 10
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 10
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 11
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 11
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 0,
|
|
"r": 4
|
|
},
|
|
"e": {
|
|
"c": 0,
|
|
"r": 5
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 3,
|
|
"r": 4
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 5
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 4
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 5
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 1,
|
|
"r": 6
|
|
},
|
|
"e": {
|
|
"c": 2,
|
|
"r": 6
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 0,
|
|
"r": 2
|
|
},
|
|
"e": {
|
|
"c": 3,
|
|
"r": 2
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 4,
|
|
"r": 0
|
|
},
|
|
"e": {
|
|
"c": 4,
|
|
"r": 3
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 6,
|
|
"r": 0
|
|
},
|
|
"e": {
|
|
"c": 8,
|
|
"r": 0
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 5,
|
|
"r": 2
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 2
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 7,
|
|
"r": 2
|
|
},
|
|
"e": {
|
|
"c": 8,
|
|
"r": 2
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 5,
|
|
"r": 3
|
|
},
|
|
"e": {
|
|
"c": 6,
|
|
"r": 3
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 7,
|
|
"r": 3
|
|
},
|
|
"e": {
|
|
"c": 8,
|
|
"r": 3
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 7,
|
|
"r": 4
|
|
},
|
|
"e": {
|
|
"c": 8,
|
|
"r": 4
|
|
}
|
|
},
|
|
{
|
|
"s": {
|
|
"c": 0,
|
|
"r": 0
|
|
},
|
|
"e": {
|
|
"c": 3,
|
|
"r": 1
|
|
}
|
|
}] // cellMergescjn
|
|
}
|
|
for (let i = 0; i < cell.length; i++) { // drawAllCellBordercjn
|
|
data[cell[i]] = {
|
|
"v": "",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium"
|
|
},
|
|
"right": {
|
|
"style": "medium"
|
|
},
|
|
"top": {
|
|
"style": "medium"
|
|
},
|
|
"bottom": {
|
|
"style": "medium"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// thereGiveCellValuecjn
|
|
data.A1 = {
|
|
"t": "s",
|
|
"v": "HAOSEN",
|
|
"s": {
|
|
"alignment": {
|
|
"vertical": "center",
|
|
"horizontal": "center"
|
|
},
|
|
"font": {
|
|
"sz" : 20,
|
|
"bold": true
|
|
},
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.E1 = {
|
|
"t": "s",
|
|
"v": "工艺、定额卡",
|
|
"s": {
|
|
"alignment": {
|
|
"vertical": "center",
|
|
"horizontal": "center"
|
|
},
|
|
"font": {
|
|
"sz" : 20,
|
|
"bold": true
|
|
},
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
data.F1 = {
|
|
"t": "s",
|
|
"v": "零件图号",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.G1 = {
|
|
"t": "s",
|
|
"v": Data[0].零件图号,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.F2 = {
|
|
"t": "s",
|
|
"v": "零件名称",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
"color": {
|
|
"auto": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.G2 = {
|
|
"t": "s",
|
|
"v": Data[0].零件名称,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.H2 = {
|
|
"t": "s",
|
|
"v": "数量",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.I2 = {
|
|
"t": "n",
|
|
"v": Data[0].投产数量,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.A3 = {
|
|
"t": "s",
|
|
"v": "大连豪森设备制造有限公司",
|
|
"s": {
|
|
"alignment": {
|
|
"vertical": "center",
|
|
"horizontal": "center"
|
|
},
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.F3 = {
|
|
"t": "s",
|
|
"v": "材料",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.H3 = {
|
|
"t": "s",
|
|
"v": "原材料规格",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.A4 = {
|
|
"t": "s",
|
|
"v": "机床号",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.B4 = {
|
|
"t": "s",
|
|
"v": Data[0].机床图号,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.C4 = {
|
|
"t": "s",
|
|
"v": "组号",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.D4 = {
|
|
"t": "s",
|
|
"v": Data[0].组号,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.F4 = {
|
|
"t": "s",
|
|
"v": Data[0].材料,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.A5 = {
|
|
"t": "s",
|
|
"v": "序次",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.B5 = {
|
|
"t": "s",
|
|
"v": "工艺名称",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.D5 = {
|
|
"t": "s",
|
|
"v": "工艺要求",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.H5 = {
|
|
"t": "s",
|
|
"v": "定额工时",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.H6 = {
|
|
"t": "s",
|
|
"v": "单件",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.I6 = {
|
|
"t": "s",
|
|
"v": "准结",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.A27 = {
|
|
"t": "s",
|
|
"v": "工艺员",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.B27 = {
|
|
"t": "s",
|
|
"v": Data[0].工艺员,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.D27 = {
|
|
"t": "s",
|
|
"v": "定额员",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.E27 = {
|
|
"t": "s",
|
|
"v": Data[0].定额员,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.F27 = {
|
|
"t": "s",
|
|
"v": "日期",
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
},
|
|
data.G27 = {
|
|
"t": "n",
|
|
"v": Data[0].工艺实际完成时间,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (let i = 0; i < Data.length; i++) {
|
|
data['A' + (i + 7)] = {
|
|
"v": i + 1,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
data['B' + (i + 7)] = {
|
|
"v": Data[i].工艺名称,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
data['D' + (i + 7)] = {
|
|
"v": Data[i].工艺要求,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
data['H' + (i + 7)] = {
|
|
"v": Data[i].单件定额工时,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
data['I' + (i + 7)] = {
|
|
"v": Data[i].准结定额工时,
|
|
"s": {
|
|
"border": {
|
|
"left": {
|
|
"style": "medium",
|
|
},
|
|
"right": {
|
|
"style": "medium",
|
|
},
|
|
"top": {
|
|
"style": "medium",
|
|
},
|
|
"bottom": {
|
|
"style": "medium",
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
data['!cols'] = [{'wch': 8},{'wch': 12},{'wch': 8},{'wch': 12},{'wch': 20},{'wch': 8},{'wch': 8},{'wch': 8},{'wch': 8}]
|
|
var wb = { SheetNames: ['Sheet1'], Sheets: {}, Props: {} };
|
|
wb.Sheets['Sheet1'] = data
|
|
var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'});
|
|
saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), Title + ".xlsx");
|
|
}
|