隨筆 - 21  文章 - 12  trackbacks - 0
          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(4)

          隨筆檔案

          文章檔案

          新聞檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          前面講到我在做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ò)誤提示。

          posted @ 2012-06-19 09:54 zhangchuanzheng 閱讀(209) | 評(píng)論 (0)編輯 收藏

           

          大家知道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ù)。



           

          posted @ 2012-05-29 17:14 zhangchuanzheng 閱讀(175) | 評(píng)論 (0)編輯 收藏
          主站蜘蛛池模板: 绿春县| 遂昌县| 安岳县| 贵溪市| 张家界市| 凤庆县| 明星| 汕尾市| 兴化市| 湘潭市| 沧州市| 陵水| 凤城市| 通河县| 二连浩特市| 崇信县| 皮山县| 翼城县| 陇西县| 许昌县| 搜索| 拉萨市| 吉安县| 天祝| 大余县| 东台市| 安岳县| 通化市| 谷城县| 南汇区| 五指山市| 巨鹿县| 沂南县| 镇沅| 乾安县| 建阳市| 建瓯市| 浦县| 华容县| 新乐市| 科技|