9/8上午笔记整理

9/8上午笔记整理

  • Java Excel API(JXL)
    – Java Excel是一开放源码项目,通过它Java开发人员可以读
    取Excel文件的内容、创建新的Excel文件、更新已经存在的
    Excel文件。使用该 API非Windows操作系统也可以通过纯
    Java应用来处理Excel数据表。因为是使用Java编写的,所
    以我们在Web应用中可以通过JSP、 Servlet来调用API实现
    对Excel数据表的访问。
    – 除了JXL之外,还有Apache的一个POI项目,也可以操作
    Excel,两者相比之下:JXL使用方便,但功能相对POI比较
    弱。
    Java Excel API(JXL)
    – Java Excel是一开放源码项目,通过它Java开发人员可以读
    取Excel文件的内容、创建新的Excel文件、更新已经存在的
    Excel文件。使用该 API非Windows操作系统也可以通过纯
    Java应用来处理Excel数据表。因为是使用Java编写的,所
    以我们在Web应用中可以通过JSP、 Servlet来调用API实现
    对Excel数据表的访问。
    – 除了JXL之外,还有Apache的一个POI项目,也可以操作
    Excel,两者相比之下:JXL使用方便,但功能相对POI比较
    弱。
    一:报表导出功能
  1. 在userManageQuery_high.jsp中, 先将导出按钮的type属性改为button,再给其注册事件为οnclick=“exportExcal()”—导出excal。
  2. 在书写其函数,将其提交给AdminServlet处理
function exportExcel()
        {
        	alert();
        	window.location.href="<%=request.getContextPath()%>/AdminServlet?operator=exportExcel";
        }
  1. 在AdminServlet中加入判断,并且创建exportExcel方法
else if("exportExcel".equals(operator))
		{
			try {
				exportExcel(request,response);
			} catch (Exception e) {
				e.printStackTrace();
			}
  1. exportExcel方法报表导出方法
    ①:先将jxl的包导入lib目录中。
    ②:在exportExcel方法中创建一个可书写的xls文件
response.setHeader("Content-disposition", "attachment; filename="
 2. new String("用户".getBytes("GB2312"), "8859_1") + 
".xls");
response.setHeader("pragma", "no-cache");
response.setContentType("application/msexcel");
ServletOutputStream os = response.getOutputStream();
WritableWorkbook workbook = Workbook.createWorkbook(os);
//设置响应格式,弹出一个类似文件下载的对话框
//attachment :弹出对话框
//filename:指定参数

5.创建sheet

WritableSheet ws = workbook.createSheet("用户列表", 0);
// 0 代表第一张表

6.选择单元格,写入值

ws.addCell(new Label(0, rowNum, tmp.getId() + ""));

7.我们需要将查询结果导出到表格中,我们的查询结果在session中。

HttpSession session =request.getSession();//查询的结果
List<User> user_list=(List<User>)session.getAttribute("user_list");//从session中拿取数据

8.进行非空判断

if(user_list!=null && user_list.size()>0)
				{
					//才导出
					//怎么写数据到表格?   自然要遍历集合数据   一个对象一个对象的写
					int row_index=0;//记录行号
					for(User user:user_list)
					{
						ws.addCell(new Label(0, row_index, user.getId()+""));
						ws.addCell(new Label(1, row_index, user.getUsername()));
						ws.addCell(new Label(2, row_index, user.getSex().equals("1")?"男":"女"));
						ws.addCell(new Label(3, row_index, user.getCertType().getContent()));
						ws.addCell(new Label(4, row_index, user.getCert()));
						ws.addCell(new Label(5, row_index, user.getUserType().getContent()));
						
						row_index++;
					}
					
					workbook.write();
					workbook.close();
				}else{
					System.out.println("请先查询用户数据!");
				}
//导出六个的原因是要对 选择,性别,证件类型,证件号码,旅客类型,操作者六个数据进行操作

9.字符串格式化
– 字符串的格式化涉及到的是字体、粗细、字号等元素,这些
功能主要由WritableFont和WritableCellFormat类来负责。

WritableFont font1 = new WritableFont(WritableFont.TIMES, 16,
WritableFont.BOLD);
WritableCellFormat format1 = new WritableCellFormat(font1);
Label cell = new Label(0, 0, "导出用户列表", format1);

设置行高和列宽

ws.setRowView(0, 200);  // 行高
ws.setColumnView(0, 30); //列宽

合并单元格
– 从(m,n)到(p,q)的单元格全部合并

ws.mergeCells(0,0,5,0);

二:头像上传功能

  • 创建jsp文件
<form  action="UploadFileServlet" enctype = "multipart/form/data">
username:<input  type="text"  name="username">
password:<input type="text"  name="password">
头像: <input type="file"  name ="photo"></br>
<input type="submit"  name="注册"></br>
  • 头像上传功能实现步骤:

1.判断表单是否是头像上传表单

 boolean isMultipart=ServletFileUpload.isMultipartContent(request)

2.创建解析工厂

is(isMultipart){
 FileItemFactory  factory = new DiskFileItemFactory();
//创建文件上传的工作对象
	List<FileTtem>  fileTtems = null;
  ServletFileUpload  servletFileUpload  = new  ServletFileUpload (factory);
	try{
	3.解析表单数据
	//获取所以的表单项
		fileTtems = servetFileUpload.parseRequset(request);
		4.对表单数据进行遍历,逐个处理
		for(FileItem  item:fileItems){
			//如果数据是普通表单数据
				if(item.isFormField()){
					String fileName = item.getFielName();
								if("username".equals(fileName)){
							//获取username的value的值
							System.out.println("username":+item.getString());
				if("password".equals(fileName)){
					System.out.println("password":+item.getString);
				}

						}
				}else{  //数文件数据 :photo
					//1.获取图片的文件名字
					String fullName=item.getName();
					System.out.println("图片的完整名字"+fullName);
					File  file = new File(fullName);
					System.out.println("file name ":+file.getName());

					//2.获取图片的服务端上的保存路径
					String path=request.getServletContext().getRealPath("photos/");
					//3.写文件到服务端
					File upLoad_file = new File(path,file.getName());
					item.write(upload_file);
					System.out.println("上传成功");


					}
			}
	}catch(Exception e){
		e.printStackTrace();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值