前两天公司的同事用java jxl写了一段导出excel的代码,值得学习,现提供代码如下:(导出一个list,要作到
iterator)
首先导出jxl.jar,然后方法如下:
/**
* @param mapping
*
@param form
* @param request
* @param response
* @return
ActionForward 得到输入的起始客户代码和结束客户代码,查询结算清单,返回结果
*/
public void
doExportAsXLS(ActionMapping mapping, ActionForm form,
HttpServletRequest
request, HttpServletResponse response) {
String userCodeBegin =
request.getParameter("uCodeBegin");
String userCodeEnd =
request.getParameter("uCodeEnd");
log.info("userCodeBegin " +
userCodeBegin.toString());
log.info("userCodeEnd " +
userCodeEnd.toString());
if (userCodeBegin == null ||
userCodeBegin.equals("")) {
userCodeBegin = userCodeEnd;
}
if
(userCodeEnd == null || userCodeEnd.equals("")) {
userCodeEnd =
userCodeBegin;
}
List balanceList =
settleService.getSettleBill(userCodeBegin,
userCodeEnd);
OutputStream
os = null;
WritableWorkbook wwb = null;
Date date = new
Date();
Format format = new SimpleDateFormat("yyyyMMdd");
String
strDate = format.format(date);
try {
os = new FileOutputStream(strDate + "settle.xls");
wwb =
Workbook.createWorkbook(os);
Iterator it = balanceList.iterator();
doConfigExcel
(it, wwb);
} catch
(Exception e) {
} finally {
try {
wwb.write();
wwb.close();
os.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
response.setHeader("Content-disposition", "attachment;filename="
+
strDate + "settle.xls\"");
response.setContentType("application/msexcel");
try
{
FileInputStream fileInputStream = new FileInputStream(strDate
+
"settle.xls");
OutputStream out = response.getOutputStream();
int
i = 0;
while ((i = fileInputStream.read()) != -1) {
out.write(i);
}
fileInputStream.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
private void doConfigExcel
(Iterator
it, WritableWorkbook wwb) {
try {
while
(it.hasNext()) {
Label lchild;
SettleVo sv = (SettleVo)
it.next();
String userCode = sv.getUserCode();
int i = 2;
int
j = 0;
WritableFont wf = new WritableFont(WritableFont.TIMES,
18, WritableFont.BOLD, true);
WritableCellFormat wcfF = new
WritableCellFormat(wf);
WritableSheet ws =
wwb.createSheet(userCode, 0);
Label labelMain = new Label(4, 0,
"中国玉米淀粉网 -- 客户结算清单",wcfF);
Label labelMain1 = new
Label(4, 1, "客户结算清单",wcfF);
ws.addCell(labelMain);
ws.addCell(labelMain1);
lchild
= new Label(0, 2, "客户代码");
ws.addCell(lchild);
lchild = new Label(0, 3, userCode);
ws.addCell(lchild);
String code = sv.getCode();
lchild = new Label(2, 2,
"摊位代码");
ws.addCell(lchild);
lchild = new Label(2, 3,
code);
ws.addCell(lchild);
String fdate = sv.getFormatDate();
lchild = new Label(4,
2, "日期");
ws.addCell(lchild);
lchild = new Label(4, 3,
fdate);
ws.addCell(lchild);
lchild = new Label(4, 4, "当日成交清单",wcfF);
ws.addCell(lchild);
Iterator its = sv.getOrders().iterator();
lchild = new
Label(0, 5, "序 号");
ws.addCell(lchild);
lchild = new
Label(2, 5, "交货时间");
ws.addCell(lchild);
lchild = new
Label(4, 5, "市 场");
ws.addCell(lchild);
lchild = new
Label(6, 5, "合约名称");
ws.addCell(lchild);
lchild = new
Label(8, 5, "成交时间");
ws.addCell(lchild);
lchild = new
Label(10, 5, "上网时间");
ws.addCell(lchild);
lchild = new
Label(12, 5, "价 格");
ws.addCell(lchild);
lchild = new
Label(14, 5, "数 量");
ws.addCell(lchild);
lchild = new
Label(16, 5, "类 型");
ws.addCell(lchild);
int ii = 6;
BigDecimal
totalDealprice = new BigDecimal(0);
Long totalAmount = new
Long(0);
while (its.hasNext()) {
ii ++;
TSpotOrder
order = (TSpotOrder) its.next();
String ordercode = order.getOrderCode();
lchild = new
Label(0, ii, ordercode);
ws.addCell(lchild);
String tradeTime = order.getLastTradeTime().toString();
lchild
= new Label(2, ii, tradeTime);
ws.addCell(lchild);
String exchange = order.getExchange();
lchild = new
Label(4, ii, exchange);
ws.addCell(lchild);
String stockname = order.getFuturesStockBase()
.getStockName();
lchild
= new Label(6, ii, stockname);
ws.addCell(lchild);
String dealtime = order.getForMateDealTime();
lchild =
new Label(8, ii, dealtime);
ws.addCell(lchild);
lchild = new Label(10, ii, "-");
ws.addCell(lchild);
String dealprice = order.getDealPrice().toString();
lchild = new Label(12, ii, dealprice);
ws.addCell(lchild);
totalDealprice = totalDealprice.add(order.getDealPrice());
String
amount = String.valueOf(order.getAmount());
lchild = new Label(14, ii, amount);
ws.addCell(lchild);
totalAmount = totalAmount + order.getAmount();
String
buy = order.getBuyFormat();
lchild = new Label(16, ii, buy);
ws.addCell(lchild);
}
lchild = new Label(0, ii + 1, "合计");
ws.addCell(lchild);
lchild
= new Label(12, ii + 1, totalDealprice.toString());
ws.addCell(lchild);
lchild
= new Label(14, ii + 1, totalAmount.toString());
ws.addCell(lchild);
int
jj = ii + 3;
int jjj = jj + 2;
lchild = new
Label(4, ii + 2, "订货表",wcfF);
ws.addCell(lchild);
lchild = new Label(0, jj, "交货月份");
ws.addCell(lchild);
lchild
= new Label(2, jj, "市 场");
ws.addCell(lchild);
lchild =
new Label(4, jj, "合约名称");
ws.addCell(lchild);
lchild = new
Label(6, jj, "买 / 卖");
ws.addCell(lchild);
lchild = new
Label(8, jj, "平均价格 ");
ws.addCell(lchild);
lchild = new
Label(10, jj, "数 量");
ws.addCell(lchild);
lchild = new
Label(12, jj, "保证金");
ws.addCell(lchild);
lchild = new
Label(14, jj, "浮 亏");
ws.addCell(lchild);
BigDecimal
totalAvgprice = new BigDecimal(0);
Long totalAvgamount = new
Long(0);
BigDecimal totalDeposit = new BigDecimal(0);
BigDecimal
totalProloss = new BigDecimal(0);
Iterator _its =
sv.getHolds().iterator();
while (its.hasNext()) {
jjj ++ ;
HoldVo4settle
hold = (HoldVo4settle) _its.next();
String month = hold.getDeliverMonth();
lchild = new
Label(0, jjj, month);
ws.addCell(lchild);
String market = hold.getMarket();
lchild = new Label(2,
jjj, market);
ws.addCell(lchild);
String ordername = hold.getOrderName();
lchild = new
Label(4, jjj, ordername);
ws.addCell(lchild);
String buyformat = hold.getBuyFormat();
lchild = new
Label(6, jjj, buyformat);
ws.addCell(lchild);
String avgprice = hold.getPrice().toString();
lchild =
new Label(8, jjj, avgprice);
ws.addCell(lchild);
totalAvgprice = totalAvgprice.add(hold.getPrice());
String
avgamount = hold.getAmount().toString();
lchild = new Label(10,
jjj, avgamount);
ws.addCell(lchild);
totalAvgamount
= totalAvgamount + hold.getAmount();
String deposit =
hold.getDeposit().toString();
lchild = new Label(12, jjj,
deposit);
ws.addCell(lchild);
totalDeposit =
totalDeposit.add(hold.getDeposit());
String proloss = hold.getPro_loss().toString();
lchild =
new Label(14, jjj, proloss);
ws.addCell(lchild);
totalProloss
= totalProloss.add(hold.getPro_loss());
}
lchild = new Label(0, jjj , "合计");
ws.addCell(lchild);
lchild
= new Label(8, jjj, totalAvgprice.toString());
ws.addCell(lchild);
lchild
= new Label(10, jjj, totalAvgamount.toString());
ws.addCell(lchild);
lchild
= new Label(12, jjj, totalDeposit.toString());
ws.addCell(lchild);
lchild
= new Label(14, jjj, totalProloss.toString());
ws.addCell(lchild);
lchild
= new Label(4, jjj + 2, "资金结算表",wcfF);
ws.addCell(lchild);
BigDecimal capital = sv.getAddCapital();
lchild = new
Label(0, jjj + 3, "+ 当日存入");
ws.addCell(lchild);
lchild =
new Label(6, jjj + 3, "- 当日支出 ");
ws.addCell(lchild);
lchild
= new Label(0, jjj + 4, "+ 当日交易盈亏");
ws.addCell(lchild);
lchild
= new Label(6, jjj + 4, "- 交易手续费 ");
ws.addCell(lchild);
if(capital
!= null){
lchild = new Label(2, jjj + 3, capital.toString());
ws.addCell(lchild);
}
BigDecimal redcapital = sv.getReduceCapital();
if(redcapital
!= null){
lchild = new Label(8, jjj + 3,
redcapital.toString());
ws.addCell(lchild);
}
BigDecimal pro_loss = sv.getPro_loss();
if(pro_loss !=
null){
lchild = new Label(2, jjj + 4, pro_loss.toString());
ws.addCell(lchild);
}
BigDecimal fee = sv.getFee();
if(fee !=
null){
lchild = new Label(8, jjj + 4, fee.toString());
ws.addCell(lchild);
}
}
} catch (RowsExceededException e) {
e.printStackTrace();
} catch (WriteException e) {
e.printStackTrace();
}
}
相关推荐
根据提供的文件信息,我们可以总结并深入探讨以下几个与...以上是关于如何使用Java JXL库导出Excel文件的详细介绍,涵盖了从环境准备到具体实现步骤的全过程。希望这些知识点能够帮助您更好地理解和应用Java JXL库。
Java使用JXL库生成Excel文件是一项常见的任务,特别是在数据处理、报表生成或导出时。JXL是一个开源的Java库,允许我们读取、写入和修改Excel文件。以下将详细讲解如何使用JXL库来生成Excel文件。 首先,我们需要在...
`jxl`库是一个流行的Java库,它允许开发者读取、写入和修改Excel文件。本教程将详细介绍如何使用`jxl`库在导出Excel时添加水印,以及涉及的核心类`WritableWorkbook`、`WritableSheet`和`WritableCellFormat`。 `...
java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图 java JXL导出Excel源码及jfreechart 生成折线图,饼图
在Java开发中,生成和处理Excel文件是一项常见的任务,特别是在数据导出或报表生成的场景。JXL库是一个广泛使用的Java库,它允许开发者读取、写入和修改Excel文件。本篇将深入探讨如何使用JXL库在Java中打印Excel...
在这个示例中,我们将探讨如何使用jxl库来生成Excel文件。 首先,你需要在项目中引入jxl库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>net.sourceforge.jexcelapi</groupId> ...
- **JXL**: 是一个用于读写Excel文件的Java库,支持多种Excel版本,包括.xls格式。 - **Apache POI**: 同样是处理Excel文件的强大Java库,除了支持.xls外还支持.xlsx等新版本格式,并且提供了更多的功能,如图表、...
标题提到的"jxl导出excel文件的例子",意味着我们将探讨如何使用JXL库创建Excel文件。 在Java中,导出Excel文件通常涉及以下步骤: 1. 引入JXL库:首先,你需要在项目中添加JXL的依赖。如果你使用的是Maven,可以...
Java中的JXL库是一个非常实用的工具,它允许开发者创建、读取和修改Microsoft Excel文件。在本例中,我们将探讨如何使用JXL库来创建一个Excel文件,并对其进行各种定制,如合并单元格、设置列和单元格的属性,包括...
`jxl`库是一个广泛使用的开源库,它允许开发者方便地读取和写入Microsoft Excel文件。本文将详细介绍如何使用`jxl`库创建一个导出Excel的工具类,以及这个工具类如何帮助我们简化代码,提高效率。 首先,`jxl`库...
自己封装的方法,调用 XlHelper.getXl(List<?> voList , Object head , OutputStream ops)方法,直接返回需要的excel,而不需要再去写jxl的方法。第一个参数voList 是excel里的内容,第二个参数head是excel表头。第...
《jxl导出Excel的深度解析与应用》 在信息化高度发展的今天,Excel作为数据处理和分析的重要工具,被广泛应用于各个领域。Java作为一种强大的编程语言,如何与Excel进行交互,成为了许多开发者关注的焦点。jxl库...
Java jxl库是一个广泛使用的工具,它允许程序员在Java应用程序中读取、写入和修改Microsoft Excel文件。这个"Java jxl操作Excel97-2003 eclipse可运行项目实例"提供了一个实用的示例,帮助开发者了解如何在Eclipse...
接下来,我们将通过一个简单的示例——`ExcelDemo`,来展示如何使用JXL导出Excel表格。首先,我们需要创建一个`Workbook`对象,这相当于Excel文件中的工作簿。然后,我们可以在这个工作簿上创建多个`Sheet`,每个`...
总的来说,"利用Jxl生成excel文件"这个主题涵盖了Java环境下使用Jxl库进行Excel操作的基本知识,包括创建工作簿、工作表,添加数据,设置样式,以及读写文件的流程。对于需要在Java应用程序中生成Excel报告或导出...
Java 使用 JXL 进行Excel导入导出是一个常见的任务,特别是在数据处理和分析场景中。JXL 是一个 Java 库,允许开发者方便地读取、写入和操作 Excel 文件(.xls 格式)。以下是对这个主题的详细阐述: 1. **JXL 概述...
6. **读取Excel**:除了生成Excel文件,jxl还可以读取已有的Excel文件,将其内容转化为Java数据结构,便于处理和分析。 7. **示例代码**:通常,使用jxl的流程包括加载模板文件,找到要填充的单元格,使用`Cell....
在Java编程环境中,处理Excel文件是一项常见的任务,特别是在数据分析、数据导入导出或者报表生成等场景。`jxl`库是Java中一个广泛使用的库,它允许开发者方便地读取和写入Excel文件(.xls格式)。本篇将详细介绍...
Apache POI 和 JExcelAPI(JXL)是两个广泛使用的库,分别用于处理Microsoft Office的POI格式(包括Excel)和Java环境中的Excel文件。下面将详细阐述这两个库以及如何使用它们来生成Excel报表。 Apache POI 是一个...
在Java编程中,处理Excel文件是一项常见的任务,尤其在数据导入导出、报表生成或数据分析等场景下。jxl.jar是一个专门为Java设计的库,它允许开发者轻松地读取、写入和修改Excel文件。这个库的功能强大,覆盖了从...