package com.yeqifu.stat.utils;
import com.yeqifu.bus.domain.Customer;
import com.yeqifu.bus.domain.Rent;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.util.CellRangeAddress;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
/**
* 出租单数据库导出
*/
public class ExportRentUtils {
/**
* 导出出租单的数据
* @param rent
* @param sheetName
* @param customer
* @return
*/
public static ByteArrayOutputStream exportRent(Rent rent,Customer customer,String sheetName) {
//1.组装excel文档
//1.1创建工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
//1.2创建样式
HSSFCellStyle baseStyle = ExportHSSFCellStyle.createBaseStyle(workbook);
HSSFCellStyle titleStyle = ExportHSSFCellStyle.createTitleStyle(workbook);
//1.3在工作簿创建sheet
HSSFSheet sheet = workbook.createSheet(sheetName);
//1.4设置sheet
sheet.setDefaultColumnWidth(30);
sheet.setColumnWidth(1,50*256);
//1.5合并
CellRangeAddress region1 = new CellRangeAddress(0, 0, 0, 3);
sheet.addMergedRegion(region1);
//1.6.1创建第一行
int index=0;
HSSFRow row1 = sheet.createRow(index);
//1.6.2在第一行里面创建一个单元格
HSSFCell row1_cell1 = row1.createCell(0);
//1.6.3设置标题样式
row1_cell1.setCellStyle(titleStyle);
//1.6.4设置单元格内容
row1_cell1.setCellValue(customer.getCustname()+"的出租单信息");
//1.7.1创建第二行
index++;
HSSFRow row2 = sheet.createRow(index);
//设置行高
row2.setHeightInPoints(150);
HSSFCell row2_cell1 = row2.createCell(0);
row2_cell1.setCellStyle(baseStyle);
row2_cell1.setCellValue("出租单号:");
HSSFCell row2_cell2 = row2.createCell(1);
row2_cell2.setCellStyle(baseStyle);
row2_cell2.setCellValue(rent.getRentid());
HSSFCell row2_cell3 = row2.createCell(2);
row2_cell3.setCellStyle(baseStyle);
row2_cell3.setCellValue("二维码:");
HSSFCell row2_cell4 = row2.createCell(3);
row2_cell4.setCellStyle(baseStyle);
row2_cell4.setCellValue("");
InputStream logoStream = ExportCustomerUtils.class.getClassLoader().getResourceAsStream("logo.jpg");
//画图片
BufferedImage image = ZXingCodeEncodeUtils.createZxingCodeUseLogo(rent.getRentid(), 150, 150, logoStream);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
ImageIO.write(image,"JPEG",bos);
} catch (IOException e) {
e.printStackTrace();
}
//画图的顶级管理器,一个sheet只能获取一个
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
/**
* 参数4 设置图片的平铺程度 最大值是255 255代表铺满当前单元格 小于255就铺不满
* 参数5 列的开始坐标
* 参数6 行的开始坐标
* 参数7 列的结束坐标
* 参数8 行的结束坐标
*/
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 255, (short) 3, 1, (short) 4, 1);
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
patriarch.createPicture(anchor,workbook.addPicture(bos.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
//1.7.1创建第三行
index++;
HSSFRow row3 = sheet.createRow(index);
HSSFCell row3_cell1 = row3.createCell(0);
row3_cell1.setCellStyle(baseStyle);
row3_cell1.setCellValue("客户姓名:");
HSSFCell row3_cell2 = row3.createCell(1);
row3_cell2.setCellStyle(baseStyle);
row3_cell2.setCellValue(customer.getCustname());
HSSFCell row3_cell3 = row3.createCell(2);
row3_cell3.setCellStyle(baseStyle);
row3_cell3.setCellValue("身份证号:");
HSSFCell row3_cell4 = row3.createCell(3);
row3_cell4.setCellStyle(baseStyle);
row3_cell4.setCellValue(customer.getIdentity());
//1.7.1创建第四行
index++;
HSSFRow row4 = sheet.createRow(index);
HSSFCell row4_cell1 = row4.createCell(0);
row4_cell1.setCellStyle(baseStyle);
row4_cell1.setCellValue("起租时间");
HSSFCell row4_cell2 = row4.createCell(1);
row4_cell2.setCellStyle(baseStyle);
row4_cell2.setCellValue(rent.getBegindate().toLocaleString());
HSSFCell row4_cell3 = row4.createCell(2);
row4_cell3.setCellStyle(baseStyle);
row4_cell3.setCellValue("还车时间:");
HSSFCell row4_cell4 = row4.createCell(3);
row4_cell4.setCellStyle(baseStyle);
row4_cell4.setCellValue(rent.getReturndate().toLocaleString());
//1.7.1创建第三行
index++;
HSSFRow row5 = sheet.createRow(index);
HSSFCell row5_cell1 = row5.createCell(0);
row5_cell1.setCellStyle(baseStyle);
row5_cell1.setCellValue("车牌号:");
HSSFCell row5_cell2 = row5.createCell(1);
row5_cell2.setCellStyle(baseStyle);
row5_cell2.setCellValue(rent.getCarnumber());
HSSFCell row5_cell3 = row5.createCell(2);
row5_cell3.setCellStyle(baseStyle);
row5_cell3.setCellValue("出租价格:");
HSSFCell row5_cell4 = row5.createCell(3);
row5_cell4.setCellStyle(baseStyle);
row5_cell4.setCellValue(rent.getPrice());
//第六行 - 空行
index++;
//第七行
index++;
HSSFRow row7 = sheet.createRow(index);
HSSFCell row7_cell3 = row7.createCell(2);
row7_cell3.setCellStyle(baseStyle);
row7_cell3.setCellValue("打印时间:");
HSSFCell row7_cell4 = row7.createCell(3);
row7_cell4.setCellStyle(baseStyle);
row7_cell4.setCellValue(new Date().toLocaleString());
//第八行
/* index++;
HSSFRow row8 = sheet.createRow(index);
HSSFCell row8_cell3 = row8.createCell(2);
row8_cell3.setCellStyle(baseStyle);
row8_cell3.setCellValue("操作员:");
HSSFCell row8_cell4 = row8.createCell(3);
row8_cell4.setCellStyle(baseStyle);
row8_cell4.setCellValue(rent.getOpername());*/
//第九行
index++;
HSSFRow row9 = sheet.createRow(index);
HSSFCell row9_cell3 = row9.createCell(2);
row9_cell3.setCellStyle(baseStyle);
row9_cell3.setCellValue("客户签名:");
//到此excel组装完毕
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
//把workbook里面的数据写到outputStream
try {
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
return outputStream;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于SSM实现的汽车租赁系统【附源码+数据库】(高分毕设).zip 高分毕业设计项目,本项目是一套基于SSM实现的汽车租赁系统 或 汽车出租系统 或 在线租车系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 基于SSM实现的汽车租赁系统【附源码+数据库】(高分毕设).zip 高分毕业设计项目,本项目是一套基于SSM实现的汽车租赁系统 或 汽车出租系统 或 在线租车系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。项目都经过严格调试,确保可以运行!该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 基于SSM实现的汽车租赁系统【附源码+数据库】(高分毕设).zip 高分毕业设计项目,本项目是一套基于SSM实现的汽车租赁系统 或 汽车出租系统 或 在
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM实现的汽车租赁系统【附源码+数据库】(高分毕设).zip (842个子文件)
StatController.class 8KB
StatController.class 8KB
ExportRentUtils.class 7KB
ExportRentUtils.class 7KB
UserServiceImpl.class 6KB
UserServiceImpl.class 6KB
RoleServiceImpl.class 6KB
RoleServiceImpl.class 6KB
MenuController.class 5KB
MenuController.class 5KB
ZXingCodeEncodeUtils.class 5KB
ZXingCodeEncodeUtils.class 5KB
ExportCustomerUtils.class 5KB
ExportCustomerUtils.class 5KB
CheckServiceImpl.class 5KB
CheckServiceImpl.class 5KB
UserController.class 4KB
UserController.class 4KB
AppFileUtils.class 4KB
AppFileUtils.class 4KB
LoginController.class 4KB
LoginController.class 4KB
RentController.class 4KB
RentController.class 4KB
User.class 3KB
User.class 3KB
TreeNode.class 3KB
TreeNode.class 3KB
RentServiceImpl.class 3KB
RentServiceImpl.class 3KB
FileController.class 3KB
FileController.class 3KB
CarController.class 3KB
CarController.class 3KB
CarServiceImpl.class 3KB
CarServiceImpl.class 3KB
MenuServiceImpl.class 3KB
MenuServiceImpl.class 3KB
NewsController.class 3KB
NewsController.class 3KB
CheckController.class 3KB
CheckController.class 3KB
CustomerServiceImpl.class 3KB
CustomerServiceImpl.class 3KB
Car.class 3KB
Car.class 3KB
InitMenuData.class 3KB
InitMenuData.class 3KB
Rent.class 3KB
Rent.class 3KB
RoleController.class 3KB
RoleController.class 3KB
NewsServiceImpl.class 3KB
NewsServiceImpl.class 3KB
Check.class 2KB
Check.class 2KB
Menu.class 2KB
Menu.class 2KB
ExportHSSFCellStyle.class 2KB
ExportHSSFCellStyle.class 2KB
RandomUtils.class 2KB
RandomUtils.class 2KB
CustomerController.class 2KB
CustomerController.class 2KB
LogInfoServiceImpl.class 2KB
LogInfoServiceImpl.class 2KB
ResultObj.class 2KB
ResultObj.class 2KB
Customer.class 2KB
Customer.class 2KB
SysConstast.class 2KB
SysConstast.class 2KB
LogInfoController.class 2KB
LogInfoController.class 2KB
SysConstant.class 2KB
SysConstant.class 2KB
News.class 2KB
News.class 2KB
DataGridView.class 2KB
DataGridView.class 2KB
SysController.class 2KB
SysController.class 2KB
MBGTest.class 2KB
MBGTest.class 2KB
LogInfoVo.class 2KB
LogInfoVo.class 2KB
CheckVo.class 2KB
CheckVo.class 2KB
NewsVo.class 2KB
NewsVo.class 2KB
LogInfo.class 2KB
LogInfo.class 2KB
StatServiceImpl.class 1KB
StatServiceImpl.class 1KB
BusController.class 1KB
BusController.class 1KB
TreeNodeBuilder.class 1KB
TreeNodeBuilder.class 1KB
RecycleTempFileTask.class 1KB
RecycleTempFileTask.class 1KB
共 842 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
- m0_719721692024-04-03资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
- icwx_75505922024-04-03资源内容详细全面,与描述一致,对我很有用,有一定的使用价值。
盈梓的博客
- 粉丝: 9573
- 资源: 2310
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Springboot+Vue的信息技术知识竞赛系统的设计-毕业源码案例设计(高分项目).zip
- chrom,edge浏览器插件
- 快速定制中国传统节日头像(全套源码) 开箱即用
- 基于Springboot+Vue的新闻推荐系统毕业源码案例设计(高分项目).zip
- 12MONTHTEXTTEST
- 基于springboot+vue的学生干部管理系统-毕业源码案例设计(高分毕业设计).zip
- 基于Springboot+Vue的学生心理咨询评估系统毕业源码案例设计(95分以上).zip
- 基于Springboot+Vue的学生用品采购系统-毕业源码案例设计(源码+数据库).zip
- 机器学习实战:结合随机森林(RF)与递归特征消除和交叉验证(RFECV)进行精准特征选择,使用LightGBM与过采样技术应对极度不均衡的正负样本,并通过SHAP进行模型解释的电信客户流失预测
- 基于Springboot+Vue的医药管理系统-毕业源码案例设计(高分毕业设计).zip
- 基于Springboot+Vue的药店管理系统的设计与实现-毕业源码案例设计(源码+论文).zip
- 基于Springboot+Vue的医院挂号就诊系统-毕业源码案例设计(源码+论文).zip
- 基于Springboot+Vue的疫情隔离管理系统-毕业源码案例设计(高分毕业设计).zip
- 基于Springboot+Vue的医院药品管理系统设计与实现-毕业源码案例设计(源码+项目说明+演示视频).zip
- 基于Springboot+Vue的医院资源管理系统-毕业源码案例设计(高分项目).zip
- 酒驾风险行为数据集.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功