标题:求助,请后台操作EXCEL的高手进来看下!
只看楼主
leonardo38
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2009-1-1
结帖率:20%
 问题点数:0 回复次数:3 
求助,请后台操作EXCEL的高手进来看下!
我现在有个功能,是要把JAVA程序在后台生成的EXCEL保存要oracle数据库的BLOG类型字段,现在遇到个问题,就是后台生成的EXCEL我不会获取,以前只写过后台生成的EXCEL下载出来,但直接从后台获取生成的EXCEL保存到数据没做过,请懂的人知道下,生成EXCEL的代码如下:
File f=new File(Constant.LILE_UPLOAD_PLAN_FOLDER+new Integer(DateUtil.getCurrentDate())+"-配件新信息.xls");
            //打开文件
            WritableWorkbook book=Workbook.createWorkbook(f);
               
            //生成名为"第一页"的工作表,参数0表示这是第一页
            WritableSheet sheet=book.createSheet("配件新信息",0);
            
            //设置字体为宋体,16号字,加粗,颜色为红色
            WritableFont font1=new WritableFont(WritableFont.createFont("宋体"),16,WritableFont.BOLD);
            font1.setColour(Colour.RED);
            WritableCellFormat format1=new WritableCellFormat(font1);
            format1.setAlignment(jxl.format.Alignment.CENTRE);
            format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
               
            Label labelA = new Label(0,0,"配件件号",format1);
            Label labelB = new Label(1,0,"配件名称",format1);
            Label labelC = new Label(2,0,"新增品种",format1);
            Label labelD = new Label(3,0,"配件原价格",format1);
            Label labelE = new Label(4,0,"配件新价格",format1);
            Label labelF = new Label(5,0,"替换件",format1);
            
            //将定义好的单元格添加到工作表中
            sheet.addCell(labelA);
            sheet.addCell(labelB);
            sheet.addCell(labelC);
            sheet.addCell(labelD);
            sheet.addCell(labelE);
            sheet.addCell(labelF);
               
            for (int j = 0; j < partNewInfoList.size(); j++) {
                Part part=partNewInfoList.get(j);
                sheet.addCell(new Label(0,j+1,part.getBjxmbh(),this.getAllUCell()));
                sheet.addCell(new Label(1,j+1,part.getBjzwmc(),this.getAllUCell()));
                sheet.addCell(new Label(2,j+1,part.getBjsfxz(),this.getAllUCell()));
                sheet.addCell(new jxl.write.Number(3,j+1,part.getBjysjg(),this.getAllUCell()));
                sheet.addCell(new jxl.write.Number(4,j+1,part.getBjdqjg(),this.getAllUCell()));
                sheet.addCell(new Label(5,j+1,part.getBjsfth(),this.getAllUCell()));
            }
            //写入数据并关闭文件
            book.write();
            book.close();
            System.out.println("创建文件成功!");

现在这个EXCEL创建出来了,但怎么在这个JAVA类你直接获取保存到BLOG类型字段,注意,不是读取EXCEL里面的数据,而且是获取这个EXCEL文件

[ 本帖最后由 leonardo38 于 2013-4-25 10:25 编辑 ]
搜索更多相关主题的帖子: JAVA程序 工作表 EXCEL 
2013-04-25 10:22
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:0 
首先是生成excel文件 获取该文件的路径
获取 OutputStream outStream = blob.getBinaryOutputStream(); //到数据库的输出流
File file = new File("文件路径");
InputStream fin = new FileInputStream(file);
//将输入流写到输出流
byte[] b = new byte[blob.getBufferSize()];
        int len = 0;
        while ( (len = fin.read(b)) != -1) {
          outStream.write(b, 0, len);
         
        }
关闭
2013-04-25 20:16
leonardo38
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2009-1-1
得分:0 
以下是引用hhwz在2013-4-25 20:16:01的发言:

首先是生成excel文件 获取该文件的路径
获取 OutputStream outStream = blob.getBinaryOutputStream(); //到数据库的输出流
File file = new File("文件路径");
InputStream fin = new FileInputStream(file);
//将输入流写到输出流
byte[] b = new byte;
        int len = 0;
        while ( (len = fin.read(b)) != -1) {
          outStream.write(b, 0, len);
         
        }
关闭



变量blob是哪里定义的,这个似乎没定义啊

麻烦能否接在上面的生成代码后面完成的续完,因为这块实在不懂

[ 本帖最后由 leonardo38 于 2013-4-26 11:30 编辑 ]
2013-04-26 10:44
hhwz
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:87
帖 子:687
专家分:4502
注 册:2011-5-22
得分:0 
oracle.sql.BLOB blob //创建一个 blob
其他和上面一样

2013-04-26 17:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-405459-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.172724 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved