讀取大資料量xlsx

2021-08-18 08:54:23 字數 3793 閱讀 6854

public class saxxlsxparser implements autocloseable 

public

saxxlsxparser(file file) throws ioexception, saxexception, invalidformatexception

public

saxxlsxparser(inputstream inputstream) throws ioexception, saxexception, invalidformatexception

/*** 掃瞄檔案**

@param

sheetcontentshandler

*/public void

scan(sheetcontentshandler sheetcontentshandler)

}} catch (ioexception | openxml4jexception | saxexception | parserconfigurationexception e)

}/**

* 關閉資源**

@throws

exception

*/@override

public void

close() throws exception

}

public abstract class abstracthandler implements sheetcontentshandler 

/*** 初始化為空**

@param

columnsize

單元格列數

*/private

abstracthandler(int columnsize)

}/**

* 每行開始**

@param

rownum

*/@override

public void

startrow(int rownum)

size++;

this.currentrowno = rownum;

} /**

* 每行結束**

@param

rownum

*/@override

public void

endrow(int rownum)

}/**

* 處理當前行資料**

@param

currentrow

當前行*

@param

row

當前行內容

*/protected abstract void

handle(int currentrow, listrow);

/***

@param

cellreference

單元格名稱

*@param

formattedvalue

單元格裡面的格式化字串值

*@param

comment

備註*/

@override

public void

cell(string cellreference, string formattedvalue, xssfcomment comment)

}/**

* 頭部**

@param

text

文字內容

*@param

isheader

*@param

tagname

標籤名*/

@override

public void

headerfooter(string text, boolean isheader, string tagname)

public abstract void

finish();

public int

getprocessedcurrentrowno()

public int

getsize()

public void

haserror()

}

}

public class permissionhandler extends abstracthandler 

@override

protected void

handle(int currentrow, listrow)

string id = row.get(0);

string type = totype(row.get(1));

ruleid ruleid = ruleid.valueof(type,id);

ruleid parentruleid = resourcecache.getparentid(ruleid);

if(parentruleid==null)

string groupip=parentruleid.id

;jsonobject object = new jsonobject();

object.addproperty("type"

,type);

object.addproperty("id"

,id);

object.addproperty("parentid"

,groupip);

object.addproperty("list"

,convertstatus(row.get(3)));

object.addproperty("live"

,convertstatus(row.get(4)));

object.addproperty("history"

,convertstatus(row.get(5)));

object.addproperty("ptz"

,convertstatus(row.get(6)));

object.addproperty("manualrecord"

,convertstatus(row.get(7)));

object.addproperty("download"

,convertstatus(row.get(8)));

consumer.consume(object);

} @override

public void

finish()

private string convertstatus(string value)else if(value.equals(i18nutils.i18n(locale

,"temporary")))

return status.reject

.name();

//其他值都當做reject

} public string totype(string type)else if("分組本部".equals(type))else

return ruleid.type.resource

.name();

}}

大資料量演算法

給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 位圖思想解法 include stdio.h include stdlib.h include memory.h define max num 4294967295 int mai...

大資料量處理

看看這個,異曲同工,永遠不超時 該程式是針對非常龐大的資料庫開發的,沒有用迴圈 用途 對過萬條資料的資料庫字段內容批量替換 資料庫連線 dim beeyee dbname,connstr,conn,intsn1 dim content,num,intsn,intidno,strcodea,strco...

航測大資料量處理 大資料量處理及優化措施

1 首先考慮垂直拆分庫,不同的表拆分到不同的庫中,例如使用者庫 產品庫 支付庫 2 然後考慮水平拆分庫,將乙個表的資料放到多張表中,例如按照使用者 時間 訂單號 3 插入資料的時候不建立索引 4 待資料已經插入完成後,建立索引 5 正確的指定索引字段 6 使用批量插入資料庫的方式代替單條資料的插入 ...