| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
29 | 30 | 1 | 2 | 3 | 4 | 5 | |||
6 | 7 | 8 | 9 | 10 | 11 | 12 | |||
13 | 14 | 15 | 16 | 17 | 18 | 19 | |||
20 | 21 | 22 | 23 | 24 | 25 | 26 | |||
27 | 28 | 29 | 30 | 31 | 1 | 2 | |||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
前面講到我在做2BizBox ERP開(kāi)發(fā)的時(shí)候,遇到導(dǎo)入數(shù)據(jù)的需求,然后我用JXL對(duì)Excel進(jìn)行了一些操作。
但我們不能讓用戶輸入“1,2”這種坐標(biāo)吧,如客戶編號(hào)坐標(biāo);用戶肯定喜歡用Excel的坐標(biāo),A1,B1等來(lái)表示。來(lái)個(gè)圖看看:
所以就要求程序把A1,B1等轉(zhuǎn)換成JXL認(rèn)識(shí)的坐標(biāo)。
第一步:校驗(yàn)數(shù)據(jù),看是否符合Excel坐標(biāo)表示法,我用的是正則
第二步:把字母轉(zhuǎn)化成數(shù)字
代碼供參考
publicstaticint[] splitExcelCell(String coordinate) {
coordinate = coordinate.trim().toUpperCase();
int[] colAndRow =newint[2];
if (coordinate.matches("[A-Z]{1,2}[0-9]+")) {
StringBuffer tmpS = new StringBuffer();
for (int i = 0; i < coordinate.length(); i++) {
char c =coordinate.charAt(i);
if (c >= 48 && c <= 57) {
colAndRow[0] = Integer.parseInt(coordinate.substring(i));
break;
}
tmpS.append(c);
}
colAndRow[1] = splitExcelCol(tmpS.toString());
}
return colAndRow;
}
publicstaticint splitExcelCol(String coordinate) {
coordinate = coordinate.trim().toUpperCase();
int colNumber = 0;
if (coordinate.matches("[A-Z]{1,2}")) {
if (coordinate.length() == 1) {
int k = coordinate.charAt(0) - 64;
colNumber = k;
}
elseif (coordinate.length() == 2) {
int i = coordinate.charAt(0) - 64;
int j = coordinate.charAt(1) - 64;
colNumber = i * 26 + j;
}
}
return colNumber;
}
當(dāng)然程序也要做一些判斷,如果用戶輸入有誤的話,報(bào)一些錯(cuò)誤提示。
大家知道TWaver Java總的TList繼承自Swing的JList,所以我們可以很容易控制其選擇,例如單選、多選等。但是本文介紹如何控制按指定數(shù)量進(jìn)行選擇。
人生就是一個(gè)不停選擇的過(guò)程。所以,我們必須要謹(jǐn)慎的控制好你的選擇,無(wú)論是TList的SelectionModel,還是人生之路。
在實(shí)際項(xiàng)目中,我們經(jīng)常需要對(duì)list進(jìn)行不能超過(guò)限定數(shù)量的多重選擇控制。本文用到的技巧可能是本站最簡(jiǎn)單的一次了:利用DataBox的SelectionModel,當(dāng)選擇總數(shù)超過(guò)限定,就將最早的選擇刪除。
其中max我們可以指定。乳溝max=1則變成了單選。
通過(guò)這個(gè)思路,本文寫(xiě)了一個(gè)很簡(jiǎn)單的例子:通過(guò)控制多選數(shù)量,制作一個(gè)簡(jiǎn)單的點(diǎn)菜選擇。相信你的系統(tǒng)中也經(jīng)常會(huì)有類(lèi)似的場(chǎng)景:通過(guò)list讓用戶選擇指定數(shù)量的數(shù)據(jù)。