public class saxxlsxparser implements autocloseablepublic
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 使用批量插入資料庫的方式代替單條資料的插入 ...