您的位置:首页 > 数据库

关于excel 中的数据导入数据库 、数据库中的数据导入的Excel 中的思考

2015-03-31 19:01 393 查看
前提:1)该应用部署在本地

2)内存有限 即一次性加载不了所有的数据

问题:当Excel 中的数据信息相当大时或者是当从数据库中查询出来的结果集很大时这种情况如何处理?

思考:由于内存有限,面对的又是大数据集,只有将原有的数据集进行分段处理

对于数据库中的数据导出到Excel中

//1.创建一个工作表单
wwb = ExportExcel.createWorkBokk("XXXX",response);
String[] array = null;//表头属性数组
int size = 1,index=0,sheet_index=0,head_index;
Label label = null;//填写excel表头
WritableSheet ws = null;
while(true)//开启大数据分段读取方案
{
//通过数据库查询语句设定获取数据结果集的长度信息
if(sheet_index<=0||index>60000)
{
index = 0;//重置 列游标
ws = wwb.createSheet("sheet"+sheet_index, sheet_index);  //创建sheet
//添加表头数据
sheet_index++;
index = 1;//重置 行游标
}

//数据填充
size ++;//分页查询数据
if(this.isbreak||size>25)break;
}
wwb.write();
wwb.close();


对于Excel数据导入到数据库中通过行控制来加载数据信息,示例代码如下:

<pre class="java" name="code"><pre class="java" name="code">Workbook wb = Workbook.getWorkbook(file.getInputStream());
Sheet sheet = wb.getSheet(0);
//设定行数
int  num =  200;
for(int i=0;i<sheet.getRows();i++)
{
//行数据处理
if(i!=0 && i%num ==0)   //控制数据分段加载
{
//做数据处理,例如插入到数据库,将原来的结果集清空,继续加载数据
}
}
 



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: