jxl服务器端创建excel 并导入到客户端
来源:互联网 发布:淘宝c店没有授权书 编辑:程序博客网 时间:2024/05/28 06:08
下载jxl.jar 并导入项目中(注:jxl方法写入excel要快于poi,而读慢于poi)
1.利用jxl编写创建excel方法,如下:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.format.CellFormat;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
public class CreateExcel {
public void createExcel(String excelPath,List<String> listViewHeader,List<List<String>> list) throws IOException, RowsExceededException, WriteException{
//header
WritableWorkbook workbook ;
WorkbookSettings ws = new WorkbookSettings();
ws.setLocale(new Locale("en", "EN"));
//Workbook.createWorkbook(file, ws)
workbook = Workbook.createWorkbook(new File("data.xls"), ws);
WritableSheet s1 = workbook.createSheet("自定义查询结果", 0);
WritableFont tenpoint = new WritableFont(WritableFont.TIMES,12,WritableFont.BOLD, false);
CellFormat cf = new WritableCellFormat(tenpoint);
Label lr;
for(int i=0;i<listViewHeader.size();i++){
s1.setColumnView(i, listViewHeader.get(i).toString().length()*4);
lr = new Label(i,0,listViewHeader.get(i).toString());
lr.setCellFormat(cf);
s1.addCell(lr);
}
for(int i=0;i<list.size();i++){
List listCont = (List<String>)list.get(i);
for(int j=0;j<listCont.size();j++){
lr = new Label(j,i+1,listCont.get(j).toString());
s1.addCell(lr);
}
}
workbook.write();
workbook.close();
}
}
2。Action 方法:
public ActionForward cExcel(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response) throws Exception{
System.out.println("开始创建一个");
// CreateExcel cexl = new CreateExcel();
// cexl.createExcel();
CreateExcel exl = new CreateExcel();
List<String> listViewHeader = new ArrayList<String>();
listViewHeader.add("井id");
listViewHeader.add("油压");
listViewHeader.add("套压");
listViewHeader.add("井水温度");
listViewHeader.add("油嘴温度");
List<List<String>> contList = new ArrayList<List<String>>();
for(int i=0;i<6;i++){
List<String> list = new ArrayList<String>();
list.add("JD01254");
list.add("55PM");
list.add("66PM");
list.add("102°");
list.add("88°");
contList.add(list);
}
@SuppressWarnings("unused")
ServletOutputStream out = response.getOutputStream();
exl.createExcel(request.getContextPath(), listViewHeader, contList);
System.out.println("创建成功");
return mapping.findForward("download");
}
3、对应的jsp页面方法(也可以直接写到action方法中)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.io.File"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="java.io.IOException"%>
<%@page import="java.util.List"%>
<%@page import="javax.servlet.ServletOutputStream"%>
<%@page import="javax.servlet.http.HttpServletResponse"%><%
try {
// 往客户端输出的流
// ServletOutputStream out = response.getOutputStream();
ServletOutputStream outmm = response.getOutputStream();
// 输入流
FileInputStream hFile = new FileInputStream("data.xls");
// 创建一个hFile大小的字节型数组
byte[] data = new byte[hFile.available()];
// 头信息的编码默认为ISO-8859-1,把文件名转成默认编码传递
String filename = new String(("data.xls").getBytes(), "utf-8");
// 头信息
response.addHeader("Content-Disposition", "attachment; filename="
+ filename);
// 头信息
response.addIntHeader("Content-Length", hFile.available());
// 读数据到数组
hFile.read(data);
// 记得要关闭输入流
hFile.close();
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
outmm.write(data);
outmm.close();
out.clear();
} catch (IOException e) {
} finally {
// 删除文件
}
%>
- jxl服务器端创建excel 并导入到客户端
- jxl创建excel并下载
- jxl导入Excel到数据库中!!!
- JXL导入EXCEL文件到数据库
- JXL导入导出Excel到数据库
- 使用jxl创建并写入excel
- jxl 实现excel导入
- JXL导入导出EXCEL
- Jxl Excel导入
- jxl 导入Excel
- jxl导出导入excel
- jxl导入导出Excel
- jxl导入/导出excel
- jxl导入excel是报错
- jxl 导入 excel
- jxl导入/导出excel
- jxl导入导出Excel
- jxl导入/导出excel
- 关于linux chkconfig命令
- JAVA双链表的实现
- 使用PowerDesigner连接Oracle,反向生成表结构
- 将10进制转换为2-16进制
- 函数重载与作用域
- jxl服务器端创建excel 并导入到客户端
- jquery技巧总结(转)
- 11.VC(ui)-单色图与彩色图之间的转换
- 为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取
- UNIX高手的20个习惯
- 推荐国外数学教材
- phpMyAdmin配置
- SSH框架搭建的全过程(eclipse)
- .NET使用一般处理程序生成验证码