++)
{
ChartImg img = new ChartImg();
img.setImgTitle("图像" + (i + 1));
img.setImgName("D:/Workspace/testproj/images/barchart.png");
vecImg.add(img);
}
// 插入图表
insertImgsheet(wwb, vecImg);
//写入Excel对象
wwb.write();
wwb.close();
} catch (Exception e)
{
YTLogger.logDebug(e);
} finally
{
// 操作完成时,关闭对象,释放占用的内存空间
workbook.close();
}
}
/**
* 插入数据
* @param wwb WritableWorkbook : 工作簿
* @param dataSheet WritableSheet : 工作表
* @throws RowsExceededException
* @throws WriteException
*/
private void insertData(WritableWorkbook wwb, WritableSheet dataSheet, Vector vecData) throws RowsExceededException, WriteException
{
// 获得标题单元格对象
modiStrCell(dataSheet, 2, 0, "工商银行江苏省分行 个人网上银行业务种类/开销户明细报表(2005-12)", null);
// 修改数据单元格数据
for(int i = 0; i < vecData.size(); i ++)
{
VireObj obj = (VireObj)vecData.get(i);
modiStrCell(dataSheet, 0, TITLE_LENGTH + i, obj.getOrgNo(), null);
modiStrCell(dataSheet, 1, TITLE_LENGTH + i, obj.getOrgName(), null);
modiNumCell(dataSheet, 2, TITLE_LENGTH + i, obj.getOpenAcc(), null);
modiNumCell(dataSheet, 3, TITLE_LENGTH + i, obj.getDestoryAcc(), null);
modiNumCell(dataSheet, 4, TITLE_LENGTH + i, obj.getTotalAcc(), null);
modiNumCell(dataSheet, 5, TITLE_LENGTH + i, obj.getMonthInCount(), null);
modiNumCell(dataSheet, 6, TITLE_LENGTH + i, obj.getTotalInMoney(), null);
modiNumCell(dataSheet, 7, TITLE_LENGTH + i, obj.getMonthOutCount(), null);
modiNumCell(dataSheet, 8, TITLE_LENGTH + i, obj.getMonthOutMoney(), null);
}
// 删除空行
for (int j = vecData.size() + TITLE_LENGTH; j < SHEET_HEIGHT; j++)
{
dataSheet.removeRow(vecData.size() + TITLE_LENGTH);
}
// 插入公式
for(int i = 2; i < SHEET_WIDTH; i ++)
{
modiFormulaCell(dataSheet, i, vecData.size() + TITLE_LENGTH, 8, vecData.size() + TITLE_LENGTH, null);
}
}
/**
* 修改字符单元格的值
* @param dataSheet WritableSheet : 工作表
* @param col int : 列
* @param ro
w int : 行
* @param str String : 字符
* @param format CellFormat : 单元格的样式
* @throws RowsExceededException
* @throws WriteException
*/
private void modiStrCell(WritableSheet dataSheet, int col, int row, String str, CellFormat format) throws RowsExceededException, WriteException
{
// 获得单元格对象
WritableCell cell = dataSheet.getWritableCell(col, row);
// 判断单元格的类型, 做出相应的转化
if (cell.getType() == CellType.EMPTY)
{
Label lbl = new Label(col, row, str);
if(null != format)
{
lbl.setCellFormat(format);
} else
{
lbl.setCellFormat(cell.getCellFormat());
}
dataSheet.addCell(lbl);
} else if (cell.getType() == CellType.LABEL)
{
Label lbl = (Label)cell;
lbl.setString(str);
} else if (cell.getType() == CellType.