jsp 将数据导入 excel 保存到本地

public voidwriteToxls() throws Exception { 
		request = ServletActionContext.getRequest();
		response = ServletActionContext.getResponse();
		String orderType = java.net.URLDecoder.decode(request.getParameter("orderType"), "UTF-8");
		String regionName =java.net.URLDecoder.decode(request.getParameter("regionName"), "UTF-8");
		String startDate = request.getParameter("startDate");
		String endDate = request.getParameter("endDate");
		StringBuffer whereSql = new StringBuffer(" where 1=1 ");
		StringBuffer selectSql = new StringBuffer(
				"select flow_name, count(*) count from t_form_info");
 
		List unfinished = jdbcTemplate.queryForList(stateSql);
		List allcount = jdbcTemplate.queryForList(allstateSql);
 		String flowname ="工单未完成率";
		String fileName = flowname + ".xls";
		fileName = new String(fileName.getBytes(), "iso8859-1");// 解决中文
		response.setHeader("content-disposition", "attachment; filename=" + fileName);// 设定输出文件头
		response.setContentType("application/msexcel");// 定义输出类型
		OutputStream os = response.getOutputStream();
		WritableWorkbook wwb = Workbook.createWorkbook(os);
		jxl.write.WritableSheet ws = wwb.createSheet(flowname, 0);
		jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, true);
		jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
		jxl.write.Label labelCity = new jxl.write.Label(0, 0, "所属地市", wcfF);
		ws.addCell(labelCity);
		jxl.write.Label labelflowtype = new jxl.write.Label(1, 0, "工单类型", wcfF);
		ws.addCell(labelflowtype);
		jxl.write.Label labeltitle = new jxl.write.Label(2, 0, "未完成工单总数", wcfF);
		ws.addCell(labeltitle);
		jxl.write.Label labelflowno = new jxl.write.Label(3, 0, "工单总数", wcfF);
		ws.addCell(labelflowno);
		jxl.write.Label labelapplyperson = new jxl.write.Label(4, 0, "未完成率", wcfF);
		ws.addCell(labelapplyperson);
		 
		for (int i = 1; i <= unfinished.size(); i++) {
			Map resultMap = (Map) unfinished.get(i);
			String flowName = resultMap.get("FLOW_NAME").toString();
			String count1 = resultMap.get("count").toString();
			Map resultMap1 = (Map) allcount.get(i);
			String count2 = resultMap1.get("count").toString();
			int rate = Integer.parseInt(count1) / Integer.parseInt(count2);
			Label city = new Label(0, i, regionName);
			ws.addCell(city);
			Label type = new Label(1, i, flowName);
			ws.addCell(type);
			Label no = new Label(2, i, count1);
			ws.addCell(no);
			Label title = new Label(3, i, count2);
			ws.addCell(title);
			Label ratee = new Label(4, i, rate + "");
			ws.addCell(ratee);
		}
		// 写入 Exel 工作表
		wwb.write();
		// 关闭 Excel 工作薄对象
		wwb.close();
		os.close();
		
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Apache POI 库来读取 Excel 文件中的数据,然后使用 JDBC 将数据插入到数据库中。 以下是一个简单的示例代码: ```java import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class ExcelToDatabase { public static void main(String[] args) { String fileName = "path/to/excel/file.xlsx"; String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "password"; String insertQuery = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)"; try (FileInputStream inputStream = new FileInputStream(fileName); Workbook workbook = WorkbookFactory.create(inputStream); Connection connection = DriverManager.getConnection(url, username, password); PreparedStatement statement = connection.prepareStatement(insertQuery)) { Sheet sheet = workbook.getSheetAt(0); for (Row row : sheet) { Cell cell1 = row.getCell(0); Cell cell2 = row.getCell(1); Cell cell3 = row.getCell(2); statement.setString(1, cell1.getStringCellValue()); statement.setDouble(2, cell2.getNumericCellValue()); statement.setBoolean(3, cell3.getBooleanCellValue()); statement.executeUpdate(); } System.out.println("Data imported successfully!"); } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的示例中,你需要将 `path/to/excel/file.xlsx` 替换为实际的 Excel 文件路径,将 `table_name` 替换为实际的数据库表名,将 `column1`, `column2`, `column3` 替换为实际的数据库表列名。你还需要将数据库连接 URL、用户名和密码替换为实际值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值