当前位置: 首页 > news >正文

可以做直播的游戏视频网站自助快速建站

可以做直播的游戏视频网站,自助快速建站,seo外链推广工具,怎么和其它网站做友情链接如果想查看 node mySql 实现数据的导入导出,以及导入批量插入的sql语句,连接如下 node mySql 实现数据的导入导出,以及导入批量插入的sql语句-CSDN博客https://blog.csdn.net/snows_l/article/details/139998373 一、效果如图: 二…

如果想查看 node mySql 实现数据的导入导出,以及导入批量插入的sql语句,连接如下

node mySql 实现数据的导入导出,以及导入批量插入的sql语句-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/snows_l/article/details/139998373

一、效果如图:

二、实现方法

利用里 exceljs 插件的 addImage 方法进行插入, 关键代码如下:

const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('收入明细');
// 设置表头
// worksheet.addRow(['标题', '月份', '收入金额', '备注', '收入截图']);
let baseTableTitle = [{ header: '标题', key: 'title', width: 20 },{ header: '月份', key: 'date', width: 12 },{ header: '收入金额(元)', key: 'money', width: 16 },{ header: '就职于', key: 'source', width: 12 },{ header: '备注', key: 'remark', width: 24 }
];
if (includePic == 'true') {baseTableTitle.push({ header: '收入截图', key: 'pic', width: 16 });
}
worksheet.columns = baseTableTitle;// 循环写入数据
data.forEach(async (item, index) => {const rowData = worksheet.addRow([item.title, item.date, item.money, item.sourceStr, item.remark]);// 指定行高rowData.height = 50;
});// 插入图片
if (includePic == 'true') {for (let i = 0; i < data.length; i++) {// 插入图片到Excelconst imageId = workbook.addImage({filename: '../public' + data[i].pic, // 图片路径 不能出现中文名字extension: 'jpeg'});// E代表第5列,i+2代表第i+2行,F${i+2}:F${i+2}代表第i+2行第6列worksheet.addImage(imageId, `F${i + 2}:F${i + 2}`);}
}// buffer 返回给前端即可
const buffer = await workbook.xlsx.writeBuffer();

三、完整代码

/** @Description: ------------ fileDescription -----------* @Author: snows_l snows_l@163.com* @Date: 2024-04-15 14:29:31* @LastEditors: snows_l snows_l@163.com* @LastEditTime: 2024-06-24 22:34:26* @FilePath: /Website/Server/src/router/wages.js*/
const express = require('express');
const db = require('../../utils/connDB');
const router = express.Router();
const Excel = require('exceljs');// 导出
router.get('/wages/export', async (req, res) => {let { eDate, sDate, source, includePic } = req.query;let sql = `SELECT * FROM wages`;if (eDate && sDate) {sql += ` WHERE date >= '${sDate}-01' AND date <= '${eDate}-28'`;}if (source) {sql += ` ${eDate && sDate ? 'AND' : 'WHERE'}  source = '${source}'`;}sql += ` ${(eDate && sDate) || source ? 'and' : 'where'} del_flag = ? ORDER BY date DESC`;const params = [0];try {db.queryAsync(sql, params).then(ress => {const data = ress.results;dictSql = `select* from sys_dict where dictType = 'wages_source' and pid <> 0 order by sort ASC;`;db.queryAsync(dictSql).then(async dictRes => {const dictData = dictRes.results;// 处理就职于字典data.forEach(item => {item.sourceStr = dictData.find(dict => dict.value === item.source).label;});/*** 使用 XLSX 库导出excel文件 支持普通的xlsx格式*/// 将数据转换为工作表// const ws = XLSX.utils.json_to_sheet(data);// // 创建工作簿并添加工作表// const wb = XLSX.utils.book_new();// XLSX.utils.book_append_sheet(wb, ws, '收入');// //生成Excel文件的二进制数据// const excelBuffer = XLSX.write(wb, {//   type: 'buffer',//   bookType: 'xlsx'// });// const realName = encodeURI('收入报表.xlsx', 'GBK').toString('iso8859-1');// // 设置响应头// res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');// res.setHeader('Content-Disposition', 'attachment; filename=' + realName);// // 发送Excel文件// res.send(excelBuffer);/*** 使用 exceljs 库导出excel文件*/// 下载图片并保存到临时文件// const downloadImage = async (url, filePath) => {//   const response = await axios.get(url, { responseType: 'arraybuffer' });//   fs.writeFileSync(filePath, response.data);// };const workbook = new Excel.Workbook();const worksheet = workbook.addWorksheet('收入明细');// 设置表头// worksheet.addRow(['标题', '月份', '收入金额', '备注', '收入截图']);let baseTableTitle = [{ header: '标题', key: 'title', width: 20 },{ header: '月份', key: 'date', width: 12 },{ header: '收入金额(元)', key: 'money', width: 16 },{ header: '就职于', key: 'source', width: 12 },{ header: '备注', key: 'remark', width: 24 }];if (includePic == 'true') {baseTableTitle.push({ header: '收入截图', key: 'pic', width: 16 });}worksheet.columns = baseTableTitle;// 循环写入数据data.forEach(async (item, index) => {const rowData = worksheet.addRow([item.title, item.date, item.money, item.sourceStr, item.remark]);// 指定行高rowData.height = 50;});// 插入图片if (includePic == 'true') {for (let i = 0; i < data.length; i++) {// 插入图片到Excelconst imageId = workbook.addImage({filename: '../public' + data[i].pic, // 图片路径 不能出现中文名字extension: 'jpeg'});// E代表第5列,i+2代表第i+2行,F${i+2}:F${i+2}代表第i+2行第6列worksheet.addImage(imageId, `F${i + 2}:F${i + 2}`);}}const buffer = await workbook.xlsx.writeBuffer();// 处理中文文件名const realName = encodeURI('收入报表.xlsx', 'GBK').toString('iso8859-1');// 设置响应头res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');res.setHeader('Content-Disposition', 'attachment; filename=' + realName);// 发送Excel文件res.send(buffer);});});} catch (error) {return res.send({code: 500,data: null,msg: '导出失败'});}
});module.exports = router;

http://www.ds6.com.cn/news/96715.html

相关文章:

  • 百度网址怎么写西安区seo搜索排名优化
  • 统一管理网站系统google seo整站优化
  • 用什么软件做网站seo好免费个人网站建站申请
  • 哪个网站做国际生意项目优化seo
  • 2007年怎么做网站天天外链官网
  • 搜狐自助建站哪个平台好用百度竞价个人开户
  • 建站神器跟wordpress哪个好seo最新优化技术
  • 做的网站怎么打开是白板域名查询seo
  • 我想创建一个网站网站seo站长工具
  • 人大家网站建设seo百度点击软件
  • 网站模板带后台下载林哥seo
  • 自己做的网站点进去很卡谷歌排名推广公司
  • 辽宁智能网站建设制作江苏seo网络
  • 做策划有帮助的网站泉州seo优化
  • 大型网站设计网站网站seo策划
  • 在axure中做网站首页网站优化关键词
  • 给政府做网站报价python培训
  • 东莞网站制作找哪里百度网站如何优化排名
  • 怎样做 云知梦 网站 付费网站百度提交入口的注意事项
  • 网站做代理还可以刷水吗搜索率最高的关键词
  • 自己做的网站安全吗百度快照网站
  • 惠安规划局建设局网站seo搜索引擎优化推荐
  • 网站建设意向表2023新闻摘抄大全
  • 外包做网站软件培训机构哪家好
  • 邢台网站制作费用公关策划公司
  • 查看网站开发平台郑州seo询搜点网络效果佳
  • 高端模板建站报价百度竞价点击工具
  • ftp怎么做网站的备份百度app推广方法
  • 河源网站建设公司商业软文怎么写
  • 国家建设工程造价数据监测平台在哪个网站新东方考研班收费价格表