2 年度销售统计功能按钮;3 月度销售统计功能按钮;4 周度销售统计功能按钮;5 日度销售统计功能按钮;6 统计结果导出为Excel文件。ssm+jsp代码
以下是一个使用SSM(Spring+SpringMVC+MyBatis)和JSP的示例代码,用于实现年度、月度、周度和日度销售统计功能按钮,并将统计结果导出为Excel文件。
- 控制器(Controller)代码:
@Controller
@RequestMapping("/sales")
public class SalesController {
@Autowired
private SalesService salesService;
@RequestMapping("/yearly")
public String yearlySales(Model model) {
// 获取年度销售统计结果
List<SalesData> salesData = salesService.getYearlySales();
model.addAttribute("salesData", salesData);
return "yearly_sales";
}
@RequestMapping("/monthly")
public String monthlySales(Model model) {
// 获取月度销售统计结果
List<SalesData> salesData = salesService.getMonthlySales();
model.addAttribute("salesData", salesData);
return "monthly_sales";
}
@RequestMapping("/weekly")
public String weeklySales(Model model) {
// 获取周度销售统计结果
List<SalesData> salesData = salesService.getWeeklySales();
model.addAttribute("salesData", salesData);
return "weekly_sales";
}
@RequestMapping("/daily")
public String dailySales(Model model) {
// 获取日度销售统计结果
List<SalesData> salesData = salesService.getDailySales();
model.addAttribute("salesData", salesData);
return "daily_sales";
}
@RequestMapping("/export")
public void exportToExcel(HttpServletResponse response) {
// 获取销售统计结果
List<SalesData> salesData = salesService.getSalesData();
// 创建Excel文件并写入统计结果
Workbook workbook = salesService.exportToExcel(salesData);
// 设置响应头信息,告诉浏览器下载文件
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=sales_data.xlsx");
try (OutputStream outputStream = response.getOutputStream()) {
// 将Excel文件写入响应输出流
workbook.write(outputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 服务层(Service)代码:
@Service
public class SalesService {
@Autowired
private SalesMapper salesMapper;
public List<SalesData> getYearlySales() {
// 查询数据库获取年度销售统计结果
return salesMapper.getYearlySales();
}
public List<SalesData> getMonthlySales() {
// 查询数据库获取月度销售统计结果
return salesMapper.getMonthlySales();
}
public List<SalesData> getWeeklySales() {
// 查询数据库获取周度销售统计结果
return salesMapper.getWeeklySales();
}
public List<SalesData> getDailySales() {
// 查询数据库获取日度销售统计结果
return salesMapper.getDailySales();
}
public List<SalesData> getSalesData() {
// 查询数据库获取销售统计结果
return salesMapper.getSalesData();
}
public Workbook exportToExcel(List<SalesData> salesData) {
// 创建Excel工作簿
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sales Data");
// 创建表头行
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Date");
headerRow.createCell(1).setCellValue("Sales Amount");
// 写入统计结果
int rowNum = 1;
for (SalesData data : salesData) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(data.getDate());
row.createCell(1).setCellValue(data.getSalesAmount());
}
return workbook;
}
}
- 数据访问层(Mapper)代码:
@Repository
public interface SalesMapper {
List<SalesData> getYearlySales();
List<SalesData> getMonthlySales();
List<SalesData> getWeeklySales();
List<SalesData> getDailySales();
List<SalesData> getSalesData();
}
- JSP视图(yearly_sales.jsp、monthly_sales.jsp、weekly_sales.jsp和daily_sales.jsp)代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Yearly Sales</title>
</head>
<body>
<h1>Yearly Sales</h1>
<table>
<tr>
<th>Date</th>
<th>Sales Amount</th>
</tr>
<c:forEach items="${salesData}" var="data">
<tr>
<td>${data.date}</td>
<td>${data.salesAmount}</td>
</tr>
</c:forEach>
</table>
<a href="/sales/export">Export to Excel</a>
</body>
</html>
注意:以上代码只是一个示例,实际应用中需要根据具体需求进行适当修改和完善。同时,还需要配置Spring、SpringMVC和MyBatis的相关配置文件,并创建数据库表和相应的实体类(SalesData)。
原文地址: https://www.cveoy.top/t/topic/jbK6 著作权归作者所有。请勿转载和采集!