隨筆 - 21  文章 - 12  trackbacks - 0
          <2012年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿(4)

          隨筆檔案

          文章檔案

          新聞檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          前面講到我在做2BizBox ERP開發的時候,遇到導入數據的需求,然后我用JXL對Excel進行了一些操作。

          但我們不能讓用戶輸入“1,2”這種坐標吧,如客戶編號坐標;用戶肯定喜歡用Excel的坐標,A1,B1等來表示。來個圖看看:


          所以就要求程序把A1,B1等轉換成JXL認識的坐標。

          第一步:校驗數據,看是否符合Excel坐標表示法,我用的是正則

          第二步:把字母轉化成數字

          代碼供參考

          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;

             }

          當然程序也要做一些判斷,如果用戶輸入有誤的話,報一些錯誤提示。

          posted @ 2012-06-19 09:54 zhangchuanzheng 閱讀(209) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 秦皇岛市| 永靖县| 综艺| 潢川县| 凌云县| 罗源县| 固原市| 闽侯县| 自贡市| 麻栗坡县| 乌拉特前旗| 乌苏市| 呼玛县| 南阳市| 丁青县| 石楼县| 伊金霍洛旗| 怀远县| 东宁县| 长治市| 吉木萨尔县| 普陀区| 交口县| 肃北| 红原县| 明溪县| 拉萨市| 肥东县| 乌什县| 建瓯市| 攀枝花市| 法库县| 渝中区| 永新县| 罗甸县| 宁都县| 随州市| 大理市| 石屏县| 互助| 城步|