weixin_42373052 2010-05-28 01:46
浏览 238
已采纳

各位大侠帮个忙吧..谢了.希望你们能娶到个好媳妇儿.

是这样一个情况.我用jxl 从数据库里面读取一些记录.然后插入到Excel文件时候.并不是按照我的要求录入的数据.排版乱的很.
首先我简单说下我的表格(excel).它有6个字段包括id,userName,userAge,userAddress,userScore,userCourse
然后生成了JavaBean类---Excel 6个属性对应数表的6个字段
然后我在类DataBase中定义了一个简单的查询所有数据的方法.代码如下.
[code="java"]public class DataBase {
public ArrayList getInfo(){
Excel excel ;
ArrayList list = new ArrayList();
try{
Connection ct = this.getCon();//这里就是得到Connection对象了
PreparedStatement ps = ct.prepareStatement("select * from excel");
ResultSet rs = ps.executeQuery();
while(rs.next()){
excel = new Excel();
excel.setId(rs.getInt(1));
excel.setUserName(rs.getString(2));
excel.setUserAge(rs.getInt(3));
excel.setUserAddress(rs.getString(4));
excel.setUserScore(rs.getInt(5));
excel.setUserCourse(rs.getString(6));
list.add(excel);
}
return list;
}catch(Exception ex){
System.out.println("数据表中没有数据");
ex.printStackTrace();
}
return null;
}
}

[/code]

然后我在下面这个类中访问这个方法(得到数据库记录).并且通过 WritableWorkbook 对象写入到Excel文件中.
[code="java"] public class ExcelHandle {
public void createExcelFile(){
DataBase source = new DataBase();
ArrayList list =source.getInfo();//得到数据库的记录
try{
//创建excel文件
WritableWorkbook book = Workbook.createWorkbook(new File("d:\myexcel.xls"));

WritableSheet sheet=book.createSheet("第一页",0);
Excel excel;
for(int i = 0;i<list.size();i++){
excel =list.get(i);
if(i==0){

//关键的问题是在这里.我这里用判断i=0的方法得到了第一条记录插入excel中.但是下面的记录我就不知道怎么根据这个关键的参数 读出来了.难不成还一个个的判断 i 的值?要是1W条记录那岂不是要判断一万次.我就求个算法了.大侠们。
sheet.addCell(new Label(i,i,String.valueOf(excel.getId())));
sheet.addCell(new Label(i+1,i,excel.getUserName()));
sheet.addCell(new Label(i+2,i,String.valueOf(excel.getUserAge())));
sheet.addCell(new Label(i+3,i,excel.getUserAddress().toString()));
sheet.addCell(new Label(i+4,i,String.valueOf(excel.getUserScore())));
sheet.addCell(new Label(i+5,i,String.valueOf(excel.getUserCourse())));
}

}
book.write();
book.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

[/code]

//关键的问题是在哪个if(i==0)下面不知道如何写下去了.我这里用判断i=0的方法得到了第一条记录插入excel中.但是下面的记录我就不知道怎么根据这个关键的参数 读出来了.难不成还一个个的判断 i 的值?要是1W条记录那岂不是要判断一万次.我就求个算法了.大侠们。

最后就是写了个 Main测试.这个createExcelFile方法了.读出来的数据并不是按照一条条有序的插入到Excel文件中的.乱七八糟的.大侠们,看过了给点意见吧。真的感激万分了.

其中就有我说到的排版 混乱的截图(第一幅图).各位大侠参考下..我要的是像第一条第2条那样的排版方式.后面的实在是太混乱了
[img]http://dl.iteye.com/upload/picture/pic/63807/61c7a160-975f-3b52-8437-ae7dd6fdf041.jpg[/img]
我分析了它的坐标问题,但是就是得不出具体 的算法 第二幅图
[img]http://dl.iteye.com/upload/picture/pic/63809/3f97f1a6-7795-3b85-b03d-55c0dc5383c9.jpg[/img]
各位帮忙的大侠们.我就默默的祝福你们能娶个好媳妇儿吧..

  • 写回答

4条回答 默认 最新

  • wuhaowei12345 2010-05-28 10:56
    关注

    补充一下上面更改的,

    sheet.addCell(new Label(i,i,String.valueOf(excel.getId())));

    改成

    sheet.addCell(new Label(0,i,String.valueOf(excel.getId())));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?