根据你下面的这段要求:
创新互联建站-专业网站定制、快速模板网站建设、高性价比双河网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式双河网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖双河地区。费用合理售后完善,10余年实体公司更值得信赖。
“就是列数有时有三个,有时有四个,这些都是不确定的,所以想动态生成cell0,不用去考虑到底生成多少个HSSFCell对象”
给个思路的代码(我是直接写的,你拿来用时要改改):
List list=....//你用来动态生成的数据列表
int rno=list.size(); //行数
//列数如下,我想这是你的问题的关键
int cno=list.get(0).getClass().getDeclaredFields().length;//看不懂就照用试试。
XSSFRow row=null;
XSSFCell cell = null;
for(int i=0;irno;i++){
row=sheet.createRow(i);
for(int j=0;jcno;j++){
cell = row.createCell(j);
... //我想你在这里要取值时也是个问题。看你的list封装的是什么了
}
}
首先你可以使用输入输出流(或者你说的可能是要用反射得到程序结果来解析)解析做出*.Java文件。
然后可以使用runtime调用Dos下的java编译命令编译取得class文件。
然后使用classloader,反射等组合执行生成的class文件。
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection("数据库url","帐号","密码");
state=conn.createStatement();
state.executeUpdate("create 建表语句");
state.executeUpdate("insert 插入数据")------插入的值由页面获得,注意字符串拼接。
然后就是关闭连接,state.close();conn.close();
核心代码就是这些,具体应用你可以多写几个方法(增删改查),都是类似的,注意异常的处理,关闭连接最好在finally中进行。
String[] str={"名字1","名字2","名字3"};
for(int i=0;iv.length;i++){
JLabel lbl = new JLabel(str[i]);
int x=i%4*80+40; //4个一排 间隔80 第一个x从40开始
int y=i/4*40+40;
lbl[i].setBounds(x, y, 80, 20);
panel.add(chb[i]);
}
名称栏目:java动态生成代码 Java 动态编译
文章URL:https://www.cdcxhl.com/article36/hjjgsg.html
成都网站建设公司_创新互联,为您提供企业网站制作、电子商务、域名注册、微信小程序、搜索引擎优化、网站改版
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联