Java軟件報表軟件技術博客

          java報表軟件技術匯總 java報表軟件制作 報表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理
           

          如何取Java報表中字符串中相鄰分隔符間文本的公式呢?有時需要從包含分隔符號的字符串中提取子字符串,例如Excel工作表的某列中包含類似“200-GH11301-11TB5”的文本字符串,該字符串被兩個相同的分隔符號“-”分成三部分,且每部分的字符數不固定,現在需要提取其中的第2部分內容“GH11301"。這時可以使用下面的公式,假如原字符串位于A1單元格中,在B1單元格中輸入公式:

          =MID(LEFT(A1,FIND("`",SUBSTITUTE(A1,"-","`",2))-1),FIND("`",SUBSTITUTE(A1,"-","`",1))+1,LEN(A1))

           公式說明:本例用SUBSTITUTE函數將兩個分隔符號“-”替換為“`”,“`”符號位于數字“1”鍵的左側,也可改為字符串中沒有出現的其他特殊符號。然后用FIND函數查找第二個“`”出現的位置并用LEFT函數去掉第二個“`”后面的部分,最后用MID函數提取所需內容。由于MID函數的第三個參數“LEN(A1)”大于所提取文本的字符數,因而本公式適用于各部分長度不固定的字符串。

          也可使用下面的公式:

               =TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),LEN(A1),LEN(A1)))

              公式說明:REPT(" ",LEN(A1))產生一個與原字符串長度相同的空格字符串,用SUBSTITUTE函數將其替換各分隔符號,這樣所需提取文本的前后就都包含了與原字符串長度相同的空格字符串,再用MID函數進行截取,截取后的字符串前后都包含一些空格,最后用TRIM函數去掉這些空格即得到所需文本。本例原字符串中有2個分隔符號,第一部分有3個字符,第二部分有7個字符,第三部分有5個字符,字符串總長度LEN(A1)=17MID函數截取后“GH11301”的前面就有43+17-17+1)個空格,后面就有617-4-7)個空格。

           報表軟件中如果字符串中包含更多的分隔符號,如“1130-80-F030305-5TB1-T(40)”,要提取各部分內容,可以將公式改為:

           提取第一部分:

           =TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),1,LEN(A1)))

           或者直接用公式:

            =LEFT(A1,FIND("-",A1)-1)

           提取其他部分,如第3部分“F030305”:

           =TRIM(MID(SUBSTITUTE(A1,"-",REPT(" ",LEN(A1))),2*LEN(A1),LEN(A1)))

           本例中提取字符串中的第3部分,公式中用紅色標識的數字為“2”,如果是第N部分,則為N-1

           通過上述方法就可以獲取Java報表中字符串中相鄰分隔符間文本的公式了。



          主站蜘蛛池模板: 南京市| 黄平县| 三亚市| 承德县| 来凤县| 乌兰县| 奈曼旗| 城固县| 博爱县| 莎车县| 盱眙县| 扶沟县| 望都县| 秦皇岛市| 咸丰县| 固原市| 涞水县| 辽宁省| 呼和浩特市| 洱源县| 阿勒泰市| 陆川县| 韶山市| 井研县| 日照市| 宁海县| 冀州市| 邻水| 航空| 腾冲县| 福建省| 拜泉县| 台湾省| 新蔡县| 东光县| 来凤县| 富民县| 石楼县| 灌阳县| 隆德县| 米泉市|