十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
根据你下面的这段要求:
创新互联建站-专业网站定制、快速模板网站建设、高性价比双河网站开发、企业建站全套包干低至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]);
}