java导出数据到excel

         导出到excel是很多业务都会用到的,现在说明一种简单的导出:利用poi导出。

1.首先引入poi-3.7.jar包。

2.要导出的类中添加引用:

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
3.利用poi进行导出:

/**
	 * 导出excel
	 */
	public void exportExcel() {
		// 第一步,创建一个webbook,对应一个Excel文件
		HSSFWorkbook wb = new HSSFWorkbook();
		// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
		HSSFSheet sheet = wb.createSheet(Messages.PpOrderSendView_18);
		// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
		HSSFRow row = sheet.createRow((int) 0);
		// 第四步,创建单元格,并设置值表头 设置表头居中
		HSSFCellStyle style = wb.createCellStyle();
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式

		HSSFCell cell = row.createCell((short) 0);
		cell.setCellValue("列1");
		cell.setCellStyle(style);
		cell = row.createCell((short) 1);
		cell.setCellValue("列2");
		cell.setCellStyle(style);
		cell = row.createCell((short) 2);
		cell.setCellValue("列3");
		cell.setCellStyle(style);
		cell = row.createCell((short) 3);
		cell.setCellValue(Messages.PpOrderSendView_0);
		cell.setCellStyle(style);

		// 第五步,写入实体数据 实际应用中这些数据从数据库得到,
		// 
		List<PpSendOrder> list = (List<PpSendOrder>) listModel.getContents();//获取数据
		for (int i = 0; i < list.size(); i++) {
			row = sheet.createRow((int) i + 1);
			PpSendOrder ppSendOrder = (PpSendOrder) list.get(i);
			// 第四步,创建单元格,并设置值
			row.createCell((short) 0).setCellValue(ppSendOrder.getNameC());//和定义的列要对应
			row.createCell((short) 1).setCellValue(ppSendOrder.getDate());
			row.createCell((short) 2).setCellValue(ppSendOrder.getDayshiftI());
			

		}
		// 第六步,保存文件
		try {
			FileDialog fd = new FileDialog(getSite().getShell(), SWT.SAVE);//保存文件的对话框

			fd.setFilterNames(new String[] {
					"XLS Files (*.xls)", "All Files (*.*)" }); //保存的文件名
			fd.setFilterExtensions(new String[] { "*.xls", "*.*" }); //$NON-NLS-1$ //$NON-NLS-2$
			String fn = fd.open();
			if (StringUtil.isNullOrBlank(fn)) {
				return;
			}
			if (!fn.endsWith(".xls")) { //如果输入的文件名没有扩展名,则加上.xls作为扩展名
				fn += ".xls"; //$NON-NLS-1$
			}
			final File file = new File(fn);
			FileOutputStream fout = new FileOutputStream(file);//放入流中
			wb.write(fout);
			fout.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值