master
chenyonghang 5 months ago
parent d075be8a09
commit cdd72a55d9

@ -1,14 +1,12 @@
const express = require('express'); const express = require('express');
const app = express(); const app = express();
const mysql = require('mysql'); const mysql = require('mysql');
const XLSX = require('xlsx');
const fs = require('fs'); const fs = require('fs');
const { exec } = require('child_process'); const { exec } = require('child_process');
const http = require('http'); const http = require('http');
const querystring = require('querystring'); const querystring = require('querystring');
function dj(){
}
function arrayToCsv(data) { function arrayToCsv(data) {
return data.map(row => row.map(field => { return data.map(row => row.map(field => {
@ -363,7 +361,7 @@ app.post('/', (req, res) => {
//如果数量发生变化,自动生成出库或进库记录 //如果数量发生变化,自动生成出库或进库记录
if (postParams.amount != postParams.amounted){ if (postParams.amount != postParams.amounted && postParams.amount != null && postParams.amounted != null){
console.log(postParams.amount - postParams.amounted); console.log(postParams.amount - postParams.amounted);
if (postParams.amount > postParams.amounted){//添加进库药品统计 if (postParams.amount > postParams.amounted){//添加进库药品统计
console.log('insert into 进库药品统计 (name,company,phonenumber,price,purprice) select name,company,phonenumber,price,purprice from ' + String(postParams.type) + ' where name = ' + '"' + String(postParams.nameed) + '"' + ' and price = ' + String(postParams.priceed) +';'); console.log('insert into 进库药品统计 (name,company,phonenumber,price,purprice) select name,company,phonenumber,price,purprice from ' + String(postParams.type) + ' where name = ' + '"' + String(postParams.nameed) + '"' + ' and price = ' + String(postParams.priceed) +';');
@ -1149,6 +1147,10 @@ app.post('/', (req, res) => {
//导出csv数据 //导出csv数据
if (postParams.wenti==1002){ if (postParams.wenti==1002){
const currentTime = new Date();
const localtime = currentTime.toLocaleString();
const connection = mysql.createConnection({ const connection = mysql.createConnection({
host: 'localhost', // 数据库服务器地址 host: 'localhost', // 数据库服务器地址
user: 'root', // 数据库用户名 user: 'root', // 数据库用户名
@ -1173,7 +1175,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/主页面.csv'; const filePath = 'D:/迁移/csv/主页面.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1196,7 +1198,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/眼科用药.csv'; const filePath = 'D:/迁移/csv/眼科用药.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1219,7 +1221,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/骨科用药.csv'; const filePath = 'D:/迁移/csv/骨科用药.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1242,7 +1244,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/皮肤科用药.csv'; const filePath = 'D:/迁移/csv/皮肤科用药.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1265,7 +1267,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/呼吸系统药.csv'; const filePath = 'D:/迁移/csv/呼吸系统药.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1288,7 +1290,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/消化系统药.csv'; const filePath = 'D:/迁移/csv/消化系统药.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1311,7 +1313,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/心血管系统药.csv'; const filePath = 'D:/迁移/csv/心血管系统药.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1334,7 +1336,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/出库药品统计.csv'; const filePath = 'D:/迁移/csv/出库药品统计.csv';
// 写入文件 // 写入文件
fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => { fs.writeFile(filePath, csvString, { encoding: 'utf8' },(err) => {
@ -1357,7 +1359,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/进库药品统计.csv'; const filePath = 'D:/迁移/csv/进库药品统计.csv';
const Dir = __dirname; const Dir = __dirname;
console.log(Dir); console.log(Dir);
@ -1382,7 +1384,7 @@ app.post('/', (req, res) => {
csvString="\uFEFF"+csvString; csvString="\uFEFF"+csvString;
// 要写入的文件路径(当前文件夹) // 要写入的文件路径(当前文件夹)
const filePath = 'D:/迁移/总共信息.csv'; const filePath = 'D:/迁移/csv/总共信息.csv';
const Dir = __dirname; const Dir = __dirname;
console.log(Dir); console.log(Dir);
@ -1392,6 +1394,595 @@ app.post('/', (req, res) => {
console.log('CSV 文件已被保存到:', filePath); console.log('CSV 文件已被保存到:', filePath);
}); });
}); });
connection.query('Select * from 主页面 ORDER BY id;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品序号','药品类型','药品名称','药品价格','药品库存','','','','药品序号','药品类型','药品名称','药品价格','药品库存']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.id),String(date.type),String(date.name),String(date.price),String(date.amount),,,,String(etad.id),String(etad.type),String(etad.name),String(etad.price),String(etad.amount)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,String(lasti.id),String(lasti.type),String(lasti.name),String(lasti.price),String(lasti.amount)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 12, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 12, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '药品基本信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
if (!worksheet['!columnWidths']) worksheet['!columnWidths'] = [];
worksheet['!columnWidths'] = [40, 40, 40, 40, 40,40,40,40,40,40,40,40,40]; // A列到E列的宽度
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/药品基本信息.xlsx');
});
connection.query('Select * from 眼科用药 ORDER BY amount;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价','','','','药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.price),String(date.amount),String(date.purprice),,,,String(etad.name),String(etad.company),String(etad.phonenumber),String(etad.price),String(etad.amount),String(etad.purprice)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.price),String(lasti.amount),String(lasti.purprice)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 14, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 14, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '眼科用药详细信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/眼科用药详细信息.xlsx');
});
connection.query('Select * from 皮肤科用药 ORDER BY amount;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价','','','','药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.price),String(date.amount),String(date.purprice),,,,String(etad.name),String(etad.company),String(etad.phonenumber),String(etad.price),String(etad.amount),String(etad.purprice)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.price),String(lasti.amount),String(lasti.purprice)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 14, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 14, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '皮肤科用药详细信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/皮肤科用药详细信息.xlsx');
});
connection.query('Select * from 骨科用药 ORDER BY amount;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价','','','','药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.price),String(date.amount),String(date.purprice),,,,String(etad.name),String(etad.company),String(etad.phonenumber),String(etad.price),String(etad.amount),String(etad.purprice)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.price),String(lasti.amount),String(lasti.purprice)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 14, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 14, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '骨科用药详细信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/骨科用药详细信息.xlsx');
});
connection.query('Select * from 呼吸系统药 ORDER BY amount;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价','','','','药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.price),String(date.amount),String(date.purprice),,,,String(etad.name),String(etad.company),String(etad.phonenumber),String(etad.price),String(etad.amount),String(etad.purprice)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.price),String(lasti.amount),String(lasti.purprice)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 14, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 14, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '呼吸系统药详细信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/呼吸系统药详细信息.xlsx');
});
connection.query('Select * from 消化系统药 ORDER BY amount;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价','','','','药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.price),String(date.amount),String(date.purprice),,,,String(etad.name),String(etad.company),String(etad.phonenumber),String(etad.price),String(etad.amount),String(etad.purprice)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.price),String(lasti.amount),String(lasti.purprice)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 14, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 14, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '消化系统药详细信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/消化系统药详细信息.xlsx');
});
connection.query('Select * from 心血管系统药 ORDER BY amount;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价','','','','药品名称','药品公司','药品公司联系电话','药品价格','药品库存','药品进价']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.price),String(date.amount),String(date.purprice),,,,String(etad.name),String(etad.company),String(etad.phonenumber),String(etad.price),String(etad.amount),String(etad.purprice)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.price),String(lasti.amount),String(lasti.purprice)])
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 14, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 14, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '心血管系统药详细信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/心血管系统药详细信息.xlsx');
});
connection.query('Select * from 出库药品统计;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品库存','药品价格','药品进价','药品出库时间','','','','药品名称','药品公司','药品公司联系电话','药品库存','药品价格','药品进价','药品出库时间']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.amount),String(date.price),String(date.purprice),String(date.time),,,,String(date.name),String(date.company),String(date.phonenumber),String(date.amount),String(date.price),String(date.purprice),String(date.time)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.amount),String(lasti.price),String(lasti.purprice),String(lasti.time)]);
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 16, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 16, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '出库药品记录信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/出库药品记录信息.xlsx');
});
connection.query('Select * from 进库药品统计;', (error, results, fields) => {
if (error) throw error;
// 处理查询结果
var ld=[[''],[''],['药品名称','药品公司','药品公司联系电话','药品库存','药品价格','药品进价','药品出库时间','','','','药品名称','药品公司','药品公司联系电话','药品库存','药品价格','药品进价','药品出库时间']];
for (i=0;i<parseInt(results.length/2);i++){
const date = results[i];
const etad = results[parseInt(results.length/2)+i];
if (date!=etad){
ld.push([String(date.name),String(date.company),String(date.phonenumber),String(date.amount),String(date.price),String(date.purprice),String(date.time),,,,String(date.name),String(date.company),String(date.phonenumber),String(date.amount),String(date.price),String(date.purprice),String(date.time)]);
}
}
const lasti = results[results.length-1];
if (parseInt(results.length)%2==1){
ld.push([,,,,,,,,,,String(lasti.name),String(lasti.company),String(lasti.phonenumber),String(lasti.amount),String(lasti.price),String(lasti.purprice),String(lasti.time)]);
}
console.log(ld);
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet(ld);
// 合并第一行的前五个单元格
const mergeRange = {
s: { c: 0, r: 0 }, // 起始单元格列0A列行0
e: { c: 16, r: 0 } // 结束单元格列4E列行0
};
const mergetime = {
s: { c: 0, r: 1}, // 起始单元格列0A列行0
e: { c: 16, r: 1 } // 结束单元格列4E列行0
};
// 设置合并单元格的样式(居中)
const alignment = {
horizontal: 'center', // 水平居中
vertical: 'center' // 垂直居中
};
// 合并单元格
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergeRange);
if (!worksheet['!merges']) worksheet['!merges'] = [];
worksheet['!merges'].push(mergetime);
// 为合并的单元格设置值
worksheet['A1'] = { t: 's', v: '进库药品记录信息', s: { alignment } };
worksheet['A2'] = { t: 's', v: '导出时间:'+localtime, s: { alignment } };
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿写入文件
XLSX.writeFile(workbook, 'D:/迁移/xlsx/进库药品记录信息.xlsx');
});
//关闭连接 //关闭连接
connection.end(); connection.end();
@ -1775,12 +2366,6 @@ app.post('/', (req, res) => {
} }
// res.writeHead(200, {'Content-Type': 'application/json'});
// const responseData = {name:'POST request received'} ;
// // 发送响应数据
// res.end(JSON.stringify(responseData));
// console.log(JSON.stringify(responseData));
}); });
} }
}); });

Loading…
Cancel
Save