public String exportxm() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
// String wid=request.getParameter("wid");
String[] headers = { "项目名称", "填报人", "填报时间", "合同额", "预计毛利", "项目计划完成时间", "所属部门"};
String[] columns = { "sernum", "personer.name", "times","xsjobes", "xsb", "plannedate", "subdept.name"};
Map<String, Object> values = new HashMap<String, Object>();
//Page<Worktype> page1 = new Page<Worktype>(40);
// 设置默认排序方式
if (!page.isOrderBySetted()) {
page.setOrderBy("id");
page.setOrder(Page.DESC);
}
page.setPageSize(9999);
page = manager.searchWork(page, values);
String title="项目管理表";
// 生成Excel文件.
Workbook wb = new ExcelExport(title, headers,columns, page)
.exportExcelWorkbook();
// 输出Excel文件.
HttpServletResponse response = Struts2Utils.getResponse();
response.setContentType(ServletUtils.EXCEL_TYPE);
ServletUtils.setFileDownloadHeader(response, "项目管理-"+accountManager.getcurrentUser().getName()+".xls");
wb.write(response.getOutputStream());
response.getOutputStream().flush();
return null;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
/**
* 设置让浏览器弹出下载对话框的Header.
*
* @param fileName 下载后的文件名.
*/
public static void setFileDownloadHeader(HttpServletResponse response, String fileName) {
try {
//中文文件名支持
String encodedfileName = new String(fileName.getBytes(), "ISO8859-1");
response.setHeader("Content-Disposition", "attachment; filename=\"" + encodedfileName + "\"");
} catch (UnsupportedEncodingException e) {
}
}
public static final String EXCEL_TYPE = "application/vnd.ms-excel";
、、、、、、、、、、、、、、、
/**
* 导出到excel
* @param title 标题
* @param headers 表格头
* @param result 数据
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public ExcelExport(String title,String[] headers,String[]columns, Page page){
this.title=title;
this.headers=headers;
this.result=transhashmap(columns, page.getResult());
}
/**
* 将listObject 转换为List<HashMap<Integer, Object>>
* @param columns
* @param olist
* @return
*/
private List<HashMap<Integer, Object>> transhashmap(String[] columns,List<Object> olist){
List<HashMap<Integer, Object>> result=Lists.newArrayList();
for(Object o:olist){
HashMap<Integer, Object> ht=this.transhashmap(columns, o);
result.add(ht);
}
return result;
}
/**
* 将object 转换为hashmap
* @param columns
* @param olist
* @return
*/
private HashMap<Integer, Object> transhashmap(String[] columns,Object o){
int col=0;
HashMap<Integer, Object> ht=new HashMap<Integer, Object>();
for(String column:columns){
//根据属性名称直接获取值
Object value=this.invokeGetterMethod(o, column);
ht.put(col,value);
col=col+1;
}
return ht;
}
java中,用jxl导出EXCLE问题
定义字体格式
WritableFont.ARIAL- 居中对齐
12 - 字号
WritableFont.NO_BOLD - 无边框
false 是否是斜体字
使用jxl导出excel时怎么创建多个sheet
只是晏府的气氛,
却比汴京的秋日还沉凝,
带分萧瑟中的纷纷叶落。
Jxl如何创建EXCEL模板,并怎样可以有效导出EXCEL数据
package gongju;import java.util.Vector;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import dao.ExcelDao;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;public class DaoChuExcel extends ActionSupport {
/**
* 生成Excel文件
* @return L
*/
public String DCEecel() { HttpServletResponse response = ServletActionContext.getResponse();
try {
String fileName = "test";
response.setContentType("aplication/msexcel"); // 设置文件类型
response.setHeader("Content-disposition", "attachment; filename="
+ fileName + ".xls");
WritableWorkbook book = Workbook.createWorkbook(response
.getOutputStream()); // 创建文件
WritableSheet sheet = book.createSheet("sheet", 0); // 创建工作薄 jxl.write.WritableFont titleFont = new jxl.write.WritableFont(
WritableFont.ARIAL, 12, WritableFont.BOLD, false,
UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.DARK_BLUE);
jxl.write.WritableCellFormat titleCellFormat = new jxl.write.WritableCellFormat(
titleFont); // 设置表头
String[] titles = new String[] { "Jid", "Jdoec", "Jmin", "Jmax" }; int columnLength[] = { 20, 30, 10, 30, 20, 15, 15, 15 };
for (int i = 0; i < titles.length; i++) {
sheet.setColumnView(i, columnLength[i]); // 设置列的宽度
Label label = new Label(i, 0, titles[i], titleCellFormat);
sheet.addCell(label);
} ExcelDao edao = new ExcelDao();
// 动态填充数据
Vector vector = edao.ex();
for (int i = 0; i < vector.size(); i++) {
Object[] jobdata = (Object[]) vector.elementAt(i);
for (int j = 0; j < jobdata.length; j++) {
if(jobdata[j] instanceof Integer) {
Label wlabel1 = new Label(j, i, jobdata[j].toString()); //转String、
sheet.addCell(wlabel1);
}else{
Label wlabel1 = new Label(j, i, (String) jobdata[j]);
sheet.addCell(wlabel1);
}
}
}
book.write();
book.close();
} catch (Exception e) {
e.printStackTrace();
} return null;
}
}
用jxl导出excel数据。这样形式的表格的怎么怎么解决?
mergeCells(a,b,c,d) 单元格合并函数
a 单元格的列号
b 单元格的行号
c 从单元格[a,b]起,向下合并的列数
d 从单元格[a,b]起,向右合并的行数
因此你的情况应该是 mergeCells(0, a, 1, 0); 自己实验下。我这不好试。更多
但是我这个车牌号这列是查出来自动生成 数据有上千万条,我想让他自动生成后每列都是现在这样式。。又怎么搞呢
比如第一个车牌号占据1 2行 第二个占据3 4行 第三个占据5 6行。。怎么搞
“这个车牌号这列是查出来自动生成” 这句话何解??生成的代码不是你自己写的么?如果这样。。那你还是去找开发人员吧。。。
我的意思是 新J21484 这列 车牌号有很多。数据有上千万条,然后用jxl导出excel的话 表格中的这列要这么干。。第一个车牌号占据1 2行 第二个占据3 4行 第三个占据5 6行。。怎么搞。。jxl中有没有什么方法可以循环的,
循环不是JAVA自带的么。。。
普通循环就可以啊。
WritableWorkbook workbook = Workbook.createWorkbook(response.getOutputStream());// 创建工作薄
WritableSheet worksheet = workbook.createSheet(“测试”, 0); //建立页
for(int i=0; i < list.size();i++){
//定义中转变量
long row = 2i;
long row1 = 2i+1;
worksheet.mergeCells(0, row, 1, 2); //从2i行开始合并 1列2 行。
worksheet.addCell(new Label(0, row, 车牌号));
worksheet.addCell(new Label(1, row1, "010255ssssssssssssss"));//车牌小计下方的一行。
}
大概是这样。。。具体你要调整下。
使用jxl导出excel时怎么创建多个sheet
导出EXCEL直接调用后台的JAVA代码,是根据后台系统代码中的设定,利用导出工具,可以通过写代码创建多个Sheet页,EXCEL中的数据是在后台取的,不是从前台获取的,只需要把数据查询的条件属性转发到后台,然后后台根据这些条件查询、处理数据。
JXL导出excel问题
public String excle(String ttype,List list,String url,String filename) {
String ttypename = ttype+".xls";
// String exclepath = "D:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\cga\\upload\\"+ttypename;
String exclepath = url+ttypename;
try
{
// 打开文件
WritableWorkbook book=Workbook.createWorkbook(new File(exclepath));
// 生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet=book.createSheet(ttype,0);
// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
// 以及单元格内容为test
for(int i=0;i<list.size();i++){
String[] cell = (String[])list.get(i);
for(int j=0;j<cell.length;j++){
if(j==0||i==0){
Label label=new Label(j,i,cell[j]);
// 将定义好的单元格添加到工作表中
sheet.addCell(label);
}else{
//生成一个保存数字的单元格
//必须使用Number的完整包路径,否则有语法歧义
jxl.write.Number number = new jxl.write.Number(j,i,Double.parseDouble(cell[j]));
sheet.addCell(number);
}
}
}
/*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义*/
// 写入数据并关闭文件
book.write();
book.close();
}catch(Exception e)
{
System.out.println(e);
}
return filename;
}
这是我写的一个service,可以实现,你可以参考下
转载请注明出处51数据库 » jxl可以导出word吗 jxl怎么导出excel2007
女神我有种子