背景:

上一篇写到利用jtds连接数据库获取对应的数据,本篇写怎样用poi将数据到处到excel中,此程序为Application

正文:

第三方poi jar包:poi驱动包下载
代码片段:

/**
	 * 将数据导出到excel中
	 * @param data 将要被导入到excel中的数据
	 * @throws IOException
	 */
	public void crateTempFile(ArrayList<LinkedHashMap<String, String>> data) throws IOException {
		//建立一个excel工作簿
		HSSFWorkbook wb = new HSSFWorkbook();
		//建立一个sheet
		HSSFSheet sheet = wb.createSheet("test");
		//建立一个单元格样式
		HSSFCellStyle commonTitileStyle = wb.createCellStyle();
		//建立一个字体样式
		HSSFFont font=wb.createFont();
		//设置字体颜色
		font.setColor(HSSFColor.RED.index);//HSSFColor.VIOLET.index //字体颜色
		//设置字体的大小
		font.setFontHeightInPoints((short)12);
		//字体增粗
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		//将字体样式放入单元格样式中
		commonTitileStyle.setFont(font);
		//建立一行
		HSSFRow titleRow = sheet.createRow(0);
		Map<String, String> titleMap = data.get(0);
		Set<String> keySet = titleMap.keySet();
		Iterator<String> it = keySet.iterator();
		//sheet中行索引值
		int indexOfRow = 0;
		//建立第一行第一个单元格
		HSSFCell titileCell = titleRow.createCell(indexOfRow);
		String titilKey = "測试測试(6072)";
		//设置单元格宽度
		sheet.setColumnWidth(indexOfRow, 20 * 256);
		//给单元格赋值
		titileCell.setCellValue(titilKey);
		//设置单元格样式
		titileCell.setCellStyle(commonTitileStyle);
		indexOfRow = 1;
		//设置sheet第二行
		HSSFRow dataRow = sheet.createRow(indexOfRow);
		while (it.hasNext()) {
			//遍历建立第二行单元格格式
			HSSFCell cell1 = dataRow.createCell(indexOfRow-1);
			String key1 = it.next();
			//将数据库表中的字段名改为改动成excel中的须要的标题名称
			key1 = dbColumnNameToExcelColumnName(key1);
			sheet.setColumnWidth(indexOfRow, 20 * 256);
			cell1.setCellValue(key1);
			indexOfRow++;
		}
		//设置第三行
		indexOfRow = 2;
		for (Map<String, String> temp : data) {
			HSSFRow titleRow1 = sheet.createRow(indexOfRow);
			Set<String> set = temp.keySet();
			Iterator<String> it1 = set.iterator();
			int indexOfColumn = 0;
			while (it1.hasNext()) {
				String key = it1.next();
				if (key.equals("anchor_name") || key.equals("send_gift_user_name") || key.equals("add_date")) {
					String value = temp.get(key);
					if (key.equals("add_date")) {
						Date d = new Date(Long.valueOf(value));
						SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
						value = sdf.format(d);
					}
					HSSFCell cell = titleRow1.createCell(indexOfColumn);
					cell.setCellValue(value);
				} else {
					long value = Long.valueOf(temp.get(key));
					HSSFCell cell = titleRow1.createCell(indexOfColumn);
					cell.setCellValue(value);
				}
				indexOfColumn++;
			}
			indexOfRow++;
		}
		FileOutputStream fos = new FileOutputStream(new File("D://test//" + new Random().nextInt(100) + ".xls"));
		wb.write(fos);
		fos.close();
	}
效果:
在D:\test中建立一个excel文件,当中的样式为:

体会:

主要利用poi将数据导出excel。详细步骤是:
1.先建立一个excel工作簿,在建立一个sheet,
2.在建立的sheet中设置每一行每个列的值。
详细的样式问题,能够查看poi提供的API文档


版权声明:本文为mengfanrong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mengfanrong/p/4375521.html