2 xiaozhutou love xiaozhutou_love 于 2017.01.16 14:16 提问

java像如下的excel应该如果导入到数据库 或者 表格应该怎么设计

图片说明想要把这样的excel表格导入到数据库,应该怎么导入 我知道用POI,但是不知道怎么去
读取答案存入对象写入数据库 答案如果是两个 三个就会变成不定行,不知道该如何读取,或者有没有更好的设计表格让读取方便一点呢

其实还是不理解我的意思 或者是我说的不清楚 。见谅。我的意思是 选项由用户去输入(也就是用户决定了你选项有几个)。你事先并不知道要导入的
excel每道题的答案有几个,就是读取的时候得判断有几个答案 然后把这些答案都读取
存入到数据库。。。我不知道怎么去判断。或者怎么重新设计
表格

4个回答

qq_17311469
qq_17311469   2017.01.16 14:22

读取的时候是一个cell一个cell读取的,定义一个herder数组,依次取值,然后在存在你的对象里

qq_17311469
qq_17311469 回复xiaozhutou_love: 答案用分隔符,比如小写的','(A,B)接收,然后split打散。
11 个月之前 回复
xiaozhutou_love
xiaozhutou_love 不好意思 刚才图片忘记上传了 麻烦你在看一次 读取的时候怎么判断答案有几个 要读多少行
11 个月之前 回复
bjjoy2009
bjjoy2009   2017.01.16 15:02

public static List> readToMap2003(InputStream inputStream,int beginRow)throws Exception{
List> data=new ArrayList>();
HSSFWorkbook wb = new HSSFWorkbook(inputStream);
HSSFSheet sheet = wb.getSheetAt(0);
int lastRow = sheet.getLastRowNum();
if (lastRow > 0) {
for (int i = beginRow; i <=lastRow; i++) {
HSSFRow row = sheet.getRow(i);
if (row != null) {
Map m=new HashMap();
for(int j=0;j<columns.length;j++){
Column col=columns[j];
m.put(col.getKey(), row.getCell(j));
}
data.add(m);
}
}
}
return data;
}

column类构造函数如下,就是一个map,对应每列的excel的key,value
public Column(String key, String name) {
this.key = key;
this.name = name;
}

xiaozhutou_love
xiaozhutou_love   2017.01.16 15:26

其实还是不理解我的意思 或者是我说的不清楚 。见谅。我的意思是 选项由用户去输入(也就是用户决定了你选项有几个)。你事先并不知道要导入的
excel每道题的答案有几个,就是读取的时候得判断有几个答案 然后把这些答案都读取到存入到数据库。。。我不知道怎么去判断。或者怎么重新设计
表格

qq_17311469
qq_17311469 用户输入的时候,传值到后台组织数据的时候,你就把数据给组织好了
11 个月之前 回复
bjjoy2009
bjjoy2009   2017.01.16 17:52

用那个bjjoy2009 代码,按行读取excel,把数据存入map,之后根据题号遍历map,遇到题号,把之前获取的数据存入数据库。
这有个大疑问,你怎么设计的数据表存啊,答案数量不确定,难道答案是单独放在一个表?

bjjoy2009
bjjoy2009 回复xiaozhutou_love: 恩,最近也做个excel导入,由于是人输入的数据,格式、数据内容真的很难把控,需要考虑的地方太多,特别是涉及好多表的时候真心是恶心死啊。感觉做个html去输入这些东西,都要比从excel导入省事很多,起码可以限制输入内容,控制格式。
11 个月之前 回复
xiaozhutou_love
xiaozhutou_love 好像会更好一点,然后去关联题目 这样子取出来可能会更容易点
11 个月之前 回复
xiaozhutou_love
xiaozhutou_love 其实处理答案刚开始是想用拼接的方式放在一个字段,但是好像处理起来很麻烦,如果存放在一个专门的答案表
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片