使用poi创建表,HSSFWorkbook,HSSFSheet,HSSFRow

实现代码:

package com.classify.servlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.JOptionPane;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.util.CellRangeAddress;


public class DoGoodsPrint extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public DoGoodsPrint() {
		super();
		// TODO Auto-generated constructor stub
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 设置字符集
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");
		
		String filePath = "C:\\Users\\Administrator\\Desktop\\admin.xls";// 文件路径
		HSSFWorkbook workbook = new HSSFWorkbook();// 创建Excel文件(Workbook)
		HSSFSheet sheet = workbook.createSheet();// 创建工作表(Sheet)
		sheet = workbook.createSheet(string);// 创建工作表(Sheet)

		HSSFRow row = sheet.createRow(0);// 创建行,从0开始
		// 合并列
		HSSFCell cell = row.createCell(0);
		cell.setCellValue("商品查询结果");
		CellRangeAddress region = new CellRangeAddress(0, 0, 0, 5);
		sheet.addMergedRegion(region);

		row = sheet.createRow(1);
		cell = row.createCell(0);// 创建行的单元格,也是从0开始
		cell.setCellValue("编号");// 设置单元格内容
		row.createCell(1).setCellValue("用户名");// 设置单元格内容,重载
		row.createCell(2).setCellValue("密码");// 设置单元格内容,重载
		row.createCell(3).setCellValue("联系方式");// 设置单元格内容,重载
		row.createCell(4).setCellValue("登录身份");// 设置单元格内容,重载

		for (int i = 0; i < 6; i++) {
			row = sheet.createRow(i + 2);
			row.createCell(1).setCellValue("111");// 设置单元格内容,重载
			row.createCell(2).setCellValue("112");// 设置单元格内容,重载
			row.createCell(3).setCellValue("113");// 设置单元格内容,重载
			row.createCell(4).setCellValue("114");// 设置单元格内容,重载
			row.createCell(0).setCellValue("115");// 设置单元格内容,重载
		}

		FileOutputStream out = new FileOutputStream(filePath);
		workbook.write(out);// 保存Excel文件
		out.close();// 关闭文件流
		System.out.println("OK!");
		JOptionPane.showMessageDialog(null, "打印完成..");
			}

		} else {
			PrintWriter out = response.getWriter();
			out.flush();
			out.println("<script>");
			out.println("alert('操作失败,请输入要查询的关键词');");
			out.println("history.back();");
			out.println("</script>");
		}

		// 请求转发
		response.sendRedirect("admin_dogoodsselect?cur_user=" + cur_user);
	}
}

jar包在我上传的资源里面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
项目中想实现excel图表但POI不支持所以想到了这个方法。放上来抛砖引玉,感兴趣的欢迎大家交流 注:-------------------------------------------------------------------------- 其实现原理和利用JavaScript实现客户端绘图完全一样。后台代码将输入 写入特定区域,前端脚本在页面载入时执行脚本绘图。大家都是做B/S开发 的,这方面的只是不需要我多说了吧。 如果我们让一个HTML页面在载入时显示一个提示框用后台编程是不现实的 所以我们就动态生成一段JS: window.onload=function(){ ...... } 用Java输出图表的场景和这个一样,POI、JXL对操作Excel图表无能为力 但Excel支持脚本的,也有工作表载入事件,所以也可以用同样的原理实现 只不过这次客户端不再是浏览器而是Excel应用程序。 这样交代的应该比较明白了吧,请不要再留言抱怨没有Java代码了,因为 这根本跟java代码没多大关系,后台的代码所做的工作仅仅是写入必要的 数据,数据的解析和绘图操作是在VBA中完成的 ---2009-12-18 今天查找资料翻出来了这段代码,发现里边的类确实是空的,我说怎么总挨骂 呢,当时肯定打包的时候晕透了把另一个本该删除的类打包进去了。我无法 替换文件只能把java代码贴上来了,请自己修改模板文件的路径。 package com.test.poi; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; public class PoiChart { public static void main(String[] args){ try{ POIFSFileSystem fs=new POIFSFileSystem(new FileInputStream("E:/王建波_bak/我的练习/Module.xls")); HSSFWorkbook wb=new HSSFWorkbook(fs); HSSFSheet sheet=wb.getSheetAt(0); HSSFRow row; //写入表头 String[] aTblHeaders=new String[]{ "姓名","语文","数学","英语" }; row=sheet.createRow(0); for(int i=0,len=aTblHeaders.length;i<len;i++){ row.createCell((short)i).setCellValue(aTblHeaders[i]); } //向模板中写入数据 String[] aNames=new String[]{ "张飞","刘备","关羽","曹操","孙权","吕布" }; for(int i=0,nRowLen=aNames.length;i<nRowLen;i++){ row=sheet.createRow(i+1); row.createCell((short)0).setCellValue(aNames[i]); for(int j=1,nColLen=aTblHeaders.length;j<nColLen;j++){ row.createCell((short)j).setCellValue(Math.floor(Math.random()*100)); } } //输出文件 FileOutputStream fout=new FileOutputStream("d:/chart.xls"); wb.write(fout); fout.close(); }catch(Exception e){ e.printStackTrace(); } } }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i_止于盛夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值