整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          「Java工具類」Apache的StringEscapeUtils轉(zhuǎn)義工具類

          紹語(yǔ)

          本號(hào)主要是Java常用關(guān)鍵技術(shù)點(diǎn),通用工具類的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技術(shù)分享;datax、kafka、flink等大數(shù)據(jù)處理框架的技術(shù)分享。文章會(huì)不斷更新,歡迎碼友關(guān)注點(diǎn)贊收藏轉(zhuǎn)發(fā)!

          望各位碼友點(diǎn)擊關(guān)注,沖1000粉。后面會(huì)錄制一些視頻教程,圖文和視頻結(jié)合,比如:圖書介紹網(wǎng)站系統(tǒng)、搶購(gòu)系統(tǒng)、大數(shù)據(jù)中臺(tái)系統(tǒng)等。技術(shù)才是程序猿的最愛,碼友們沖啊

          如果碼友覺得代碼太長(zhǎng),可以從頭到尾快速掃射一遍,了解大概即可。覺得有用后再轉(zhuǎn)發(fā)收藏,以備不時(shí)之需。

          正文:

          Apache的StringEscapeUtils轉(zhuǎn)義工具類,主要是針對(duì)html、json、xml、js等的轉(zhuǎn)義。具體使用場(chǎng)景在項(xiàng)目中并不是很多,所以可能了解的人也比較少。

          StringEscapeUtils轉(zhuǎn)義例子

           import org.apache.commons.text.StringEscapeUtils;
           import org.junit.Test;
           
           public class StringEscapeUtilsTest {
           
               @Test
               public void test() {
                   // 轉(zhuǎn)義html腳本和反轉(zhuǎn)義html腳本
                   String inputText = "<input type=\"button\" value=\"點(diǎn)我\"/>";
                   String s1 = StringEscapeUtils.escapeHtml4(inputText);
                   System.out.println(s1);
                   String s2 = StringEscapeUtils.unescapeHtml4(s1);
                   System.out.println(s2);
           
                   // 轉(zhuǎn)義js腳本和反轉(zhuǎn)義js腳本
                   String s3 = StringEscapeUtils.escapeEcmaScript("<script>alert('點(diǎn)我')<script>");
                   System.out.println(s3);
                   String s4 = StringEscapeUtils.unescapeEcmaScript(s3);
                   System.out.println(s4);
           
                   // 把字符串轉(zhuǎn)義為unicode編碼和從把unicode編碼轉(zhuǎn)義為字符串
                   String s5 = StringEscapeUtils.escapeJava("abc不要點(diǎn)我了");
                   System.out.println(s5);
                   String s6 = StringEscapeUtils.unescapeJava(s5);
                   System.out.println(s6);
           
                   // 轉(zhuǎn)義XML和反轉(zhuǎn)義XML
                   String s7 = StringEscapeUtils.escapeXml11("<name>張三</name>");
                   System.out.println(s7);
                   String s8 = StringEscapeUtils.unescapeXml(s7);
                   System.out.println(s8);
               }
           }

          其他方法:


          工具類源碼:

          直接引入工具類的jar包即可

           <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-text</artifactId>
             <version>1.1</version>
           </dependency>

          和本文使用的相同功能的工具類:

          • org.apache.commons.lang.StringEscapeUtils,與org.apache.commons.text.StringEscapeUtils工具類一樣,但是apache把它注解為過時(shí)了,它還有個(gè)牛逼的方法就是轉(zhuǎn)義sql【escapeSql】,但是建議使用本文使用的包;
          <dependency>
              <groupId>commons-lang</groupId>
              <artifactId>commons-lang</artifactId>
              <version>2.6</version>
          </dependency>
          • org.springframework.web.util.HtmlUtils,spring的一個(gè)工具類,主要針對(duì)html,可以了解下;
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>5.3.6</version>
          </dependency>
          • groovy.json.StringEscapeUtils,和org.apache.commons.text.StringEscapeUtils一樣的功能,項(xiàng)目一般不用這個(gè)包,但是可以了解下;如果會(huì)groovy腳本的話應(yīng)該用的就多,groovy-xxx有很多工具類的,但是我也沒用過,感興趣的可以探索下。
          <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-all</artifactId>
            <version>3.0.9</version>
            <type>pom</type>
          </dependency>

          鄙人編碼十年多,在項(xiàng)目中也積累了一些工具類,很多工具類在每個(gè)項(xiàng)目都有在用,很實(shí)用。大部分是鄙人封裝的,有些工具類是同事封裝的,有些工具類已經(jīng)不記得是ctrl+c的還是自己封裝的了,現(xiàn)在有空就會(huì)總結(jié)項(xiàng)目中大部分的工具類,分享給各位碼友。如果文章中涉及的代碼有侵權(quán)行為請(qǐng)通知鄙人處理。

          計(jì)劃是先把工具類整理出來,正所謂工欲善其事,必先利其器。項(xiàng)目中不管是普通單體項(xiàng)目還是多模塊maven項(xiàng)目或是分布式微服務(wù),一部分功能模塊都是可以重用的,工具類模塊就是其中之一。

          們堅(jiān)持使用 web 系統(tǒng)可以理解或不需要太多努力就能理解的特殊格式,而且對(duì)人類可讀性特別有用的格式。每個(gè)都有各自的優(yōu)缺點(diǎn)和適當(dāng)?shù)挠美龍?chǎng)景。

          -- Tim Anderson

          一段超級(jí)嚴(yán)肅的關(guān)于樣本序列化的集合、子集和超集的文字

          我是一名開發(fā)者,我讀代碼,我寫代碼,我寫會(huì)寫代碼的代碼,我寫會(huì)寫出供其它代碼讀的代碼的代碼。這些都非常火星語(yǔ),但是有其美妙之處。然而,最后一點(diǎn),寫會(huì)寫出供其它代碼讀的代碼的代碼,可以很快變得比這段文字更費(fèi)解。有很多方法可以做到這一點(diǎn)。一種不那么復(fù)雜而且開發(fā)者社區(qū)最愛的方式是數(shù)據(jù)序列化。對(duì)于那些不了解我剛剛拋給你的時(shí)髦詞的人,數(shù)據(jù)序列化是從一個(gè)系統(tǒng)獲取一些信息,將其轉(zhuǎn)換為其它系統(tǒng)可以讀取的格式,然后將其傳遞給其它系統(tǒng)的過程。

          雖然 數(shù)據(jù)序列化格式 多到可以埋葬哈利法塔,但它們大多分為兩類:

          • 易于人類讀寫,
          • 易于機(jī)器讀寫。

          很難兩全其美,因?yàn)槿祟愊矚g讓我們更具表現(xiàn)力的松散類型和靈活格式標(biāo)準(zhǔn),而機(jī)器傾向于被確切告知一切事情而沒有二義性和細(xì)節(jié)缺失,并且認(rèn)為“嚴(yán)格規(guī)范”才是它們最愛的口味。

          由于我是一名 web 開發(fā)者,而且我們是一個(gè)創(chuàng)建網(wǎng)站的機(jī)構(gòu),我們將堅(jiān)持使用 web 系統(tǒng)可以理解或不需要太多努力就能理解的特殊格式,而且對(duì)人類可讀性特別有用的格式:XML、JSON、TOML、CSON 以及 YAML。每個(gè)都有各自的優(yōu)缺點(diǎn)和適當(dāng)?shù)挠美龍?chǎng)景。

          事實(shí)最先

          回到互聯(lián)網(wǎng)的早期, 一些非常聰明的家伙 決定整合一種讓每個(gè)系統(tǒng)都能理解的標(biāo)準(zhǔn)語(yǔ)言,并創(chuàng)造性地將其命名為 標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(Standard Generalized Markup Language)(簡(jiǎn)稱 SGML)。SGML 非常靈活,發(fā)布者也很好地定義了它。它成為了 XML、SVG 和 HTML 等語(yǔ)言之父。所有這三個(gè)都符合 SGML 規(guī)范,可是它們都是規(guī)則更嚴(yán)格、靈活性更少的子集。

          最終,人們開始看到非常小、簡(jiǎn)潔、易讀且易于生成的數(shù)據(jù)的好處,這些數(shù)據(jù)可以在系統(tǒng)之間以編程的方式共享,而開銷很小。大約在那個(gè)時(shí)候,JSON 誕生了并且能夠滿足所有的需求。而另一方面,其它語(yǔ)言也開始出現(xiàn)以處理更多的專業(yè)用例,如 CSON,TOML 和 YAML。

          XML:不行了

          原本,XML 語(yǔ)言非常靈活且易于編寫,但它的缺點(diǎn)是冗長(zhǎng),人類難以閱讀、計(jì)算機(jī)非常難以讀取,并且有很多語(yǔ)法對(duì)于傳達(dá)信息并不是完全必要的。

          今天,它在 web 上的數(shù)據(jù)序列化的用途已經(jīng)消失了。除非你在編寫 HTML 或者 SVG,否則你不太能在許多其它地方看到 XML。一些過時(shí)的系統(tǒng)今天仍在使用它,但是用它傳遞數(shù)據(jù)往往太重了。

          我已經(jīng)可以聽到 XML 老爺爺開始在它們的石碑上亂寫為什么 XML 是了不起的,所以我將提供一個(gè)小小的補(bǔ)充:XML 可以很容易地由系統(tǒng)和人讀寫。然而,真的,我的意思是荒謬的,很難創(chuàng)建一個(gè)可以規(guī)范的讀取它的系統(tǒng)。這是一個(gè)簡(jiǎn)單美觀的 XML 示例:

          <book id="bk101">

          <author>Gambardella, Matthew</author>

          <title>XML Developer's Guide</title>

          <genre>Computer</genre>

          <price>44.95</price>

          <publish_date>2000-10-01</publish_date>

          <description>An in-depth look at creating applications

          with XML.</description>

          </book>

          太棒了。易于閱讀、理解、寫入,也容易編碼一個(gè)可以讀寫它的系統(tǒng)。但請(qǐng)考慮這個(gè)例子:

          <!DOCTYPE r [ <!ENTITY y "a]>b"> ]>

          <r>

          <a b="&y;>" />

          <![CDATA[[a>b <a>b <a]]>

          <?x <a> <!-- <b> ?> c --> d

          </r>

          這上面是 100% 有效的 XML。幾乎不可能閱讀、理解或推理。編寫可以使用和理解這個(gè)的代碼將花費(fèi)至少 36 根頭發(fā)和 248 磅咖啡渣。我們沒有那么多時(shí)間或咖啡,而且我們大多數(shù)老程序員們現(xiàn)在都是禿頭。所以,讓它活在我們的記憶里,就像 css hacks 、 IE 6 瀏覽器 和 真空管 一樣好了。

          JSON:并列聚會(huì)

          好吧,我們都同意,XML = 差勁。那么,好的替代品是什么? JavaScript 對(duì)象表示法(JavaScript Object Notation),簡(jiǎn)稱 JSON。JSON(讀起來像 Jason 這個(gè)名字) 是 Brendan Eich 發(fā)明的,并且得到了偉大而強(qiáng)力的 JavaScript 意見領(lǐng)袖 Douglas Crockford 的推廣。它現(xiàn)在幾乎用在任何地方。這種格式很容易由人和機(jī)器編寫,按規(guī)范中的嚴(yán)格規(guī)則 解析 也相當(dāng)容易,并且靈活 —— 允許深層嵌套數(shù)據(jù),支持所有的原始數(shù)據(jù)類型,及將集合解釋為數(shù)組或?qū)ο蟆SON 成為了將數(shù)據(jù)從一個(gè)系統(tǒng)傳輸?shù)搅硪粋€(gè)系統(tǒng)的事實(shí)標(biāo)準(zhǔn)。幾乎所有語(yǔ)言都有內(nèi)置讀寫它的功能。

          JSON語(yǔ)法很簡(jiǎn)單。方括號(hào)表示數(shù)組,花括號(hào)表示記錄,由冒號(hào)分隔的兩個(gè)值分別表示屬性或“鍵”(在左邊)、值(在右邊)。所有鍵必須用雙引號(hào)括起來:

          {

          "books": [

          {

          "id": "bk102",

          "author": "Crockford, Douglas",

          "title": "JavaScript: The Good Parts",

          "genre": "Computer",

          "price": 29.99,

          "publish_date": "2008-05-01",

          "description": "Unearthing the Excellence in JavaScript"

          }

          ]

          }

          這對(duì)你來說應(yīng)該是完全有意義的。它簡(jiǎn)潔明了,并且從 XML 中刪除了大量額外廢話,并傳達(dá)相同數(shù)量的信息。JSON 現(xiàn)在是王道,本文剩下的部分會(huì)介紹其它語(yǔ)言格式,這些格式只不過是 JSON 的簡(jiǎn)化版,嘗試讓其更簡(jiǎn)潔或?qū)θ祟惛鬃x,可結(jié)構(gòu)還是非常相似的。

          TOML: 縮短到徹底的利他主義

          TOML( Tom 的顯而易見的最小化語(yǔ)言(Tom’s Obvious, Minimal Language))允許以相當(dāng)快捷、簡(jiǎn)潔的方式定義深層嵌套的數(shù)據(jù)結(jié)構(gòu)。名字中的 Tom 是指發(fā)明者 Tom Preston Werner ,他是一位活躍于我們行業(yè)的創(chuàng)造者和軟件開發(fā)人員。與 JSON 相比,語(yǔ)法有點(diǎn)尷尬,更類似 ini 文件 。這不是一個(gè)糟糕的語(yǔ)法,但是需要一些時(shí)間適應(yīng)。

          [[books]]

          id = 'bk101'

          author = 'Crockford, Douglas'

          title = 'JavaScript: The Good Parts'

          genre = 'Computer'

          price = 29.99

          publish_date = 2008-05-01T00:00:00+00:00

          description = 'Unearthing the Excellence in JavaScript'

          TOML 中集成了一些很棒的功能,例如多行字符串、保留字符的自動(dòng)轉(zhuǎn)義、日期、時(shí)間、整數(shù)、浮點(diǎn)數(shù)、科學(xué)記數(shù)法和“表擴(kuò)展”等數(shù)據(jù)類型。最后一點(diǎn)是特別的,是 TOML 如此簡(jiǎn)潔的原因:

          [a.b.c]

          d = 'Hello'

          e = 'World'

          以上擴(kuò)展到以下內(nèi)容:

          {

          "a": {

          "b": {

          "c": {

          "d": "Hello"

          "e": "World"

          }

          }

          }

          }

          使用 TOML,你可以肯定在時(shí)間和文件長(zhǎng)度上會(huì)節(jié)省不少。很少有系統(tǒng)使用它或非常類似的東西作為配置,這是它最大的缺點(diǎn)。根本沒有很多語(yǔ)言或庫(kù)可以用來解釋 TOML。

          CSON: 特定系統(tǒng)所包含的簡(jiǎn)單樣本

          首先,有兩個(gè) CSON 規(guī)范。 一個(gè)代表 CoffeeScript Object Notation,另一個(gè)代表 Cursive Script Object Notation。后者不經(jīng)常使用,所以我們不會(huì)關(guān)注它。我們只關(guān)注 CoffeeScript。

          CSON 需要一點(diǎn)介紹。首先,我們來談?wù)?CoffeeScript。 CoffeeScript 是一種通過運(yùn)行編譯器生成 JavaScript 的語(yǔ)言。它允許你以更加簡(jiǎn)潔的語(yǔ)法編寫 JavaScript 并 轉(zhuǎn)譯 成實(shí)際的 JavaScript,然后你可以在你的 web 應(yīng)用程序中使用它。CoffeeScript 通過刪除 JavaScript 中必需的許多額外語(yǔ)法,使編寫 JavaScript 變得更容易。CoffeeScript 擺脫的一個(gè)大問題是花括號(hào) —— 不需要它們。同樣,CSON 是沒有大括號(hào)的 JSON。它依賴于縮進(jìn)來確定數(shù)據(jù)的層次結(jié)構(gòu)。CSON 非常易于讀寫,并且通常比 JSON 需要更少的代碼行,因?yàn)闆]有括號(hào)。

          CSON 還提供一些 JSON 不提供的額外細(xì)節(jié)。多行字符串非常容易編寫,你可以通過使用 # 符號(hào)開始一行來輸入 注釋 ,并且不需要用逗號(hào)分隔鍵值對(duì)。

          books: [

          id: 'bk102'

          author: 'Crockford, Douglas'

          title: 'JavaScript: The Good Parts'

          genre: 'Computer'

          price: 29.99

          publish_date: '2008-05-01'

          description: 'Unearthing the Excellence in JavaScript'

          ]

          這是 CSON 的大問題。它是 CoffeScript 對(duì)象表示法(CoffeeScript Object Notation)。也就是說你要用 CoffeeScript 解析/標(biāo)記化/lex/轉(zhuǎn)譯或其它方式來使用 CSON。CoffeeScript 是讀取數(shù)據(jù)的系統(tǒng)。如果數(shù)據(jù)序列化的目的是允許數(shù)據(jù)從一個(gè)系統(tǒng)傳遞到另一個(gè)系統(tǒng),這里我們有一個(gè)只能由單個(gè)系統(tǒng)讀取的數(shù)據(jù)序列化格式,這使得它與防火火柴、防水海綿或者叉匙惱人的脆弱叉子部分一樣有用。

          如果這種格式被其它系統(tǒng)也采用,那它在開發(fā)者世界中可能非常有用。但到目前為止這基本上沒有發(fā)生,所以在 PHP 或 JAVA 等替代語(yǔ)言中使用它是不行的。

          YAML:年輕人的呼喊

          開發(fā)人員感到高興,因?yàn)?YAML 來自 一個(gè) Python 的貢獻(xiàn)者 。YAML 具有與 CSON 相同的功能集和類似的語(yǔ)法,有一系列新功能,以及幾乎所有 web 編程語(yǔ)言都可用的解析器。它還有一些額外的功能,如循環(huán)引用、軟包裝、多行鍵、類型轉(zhuǎn)換標(biāo)簽、二進(jìn)制數(shù)據(jù)、對(duì)象合并和 集合映射 。它具有非常好的可讀性和可寫性,并且是 JSON 的超集,因此你可以在 YAML 中使用完全合格的 JSON 語(yǔ)法并且一切正常工作。你幾乎不需要引號(hào),它可以解釋大多數(shù)基本數(shù)據(jù)類型(字符串、整數(shù)、浮點(diǎn)數(shù)、布爾值等)。

          books:

          - id: bk102

          author: Crockford, Douglas

          title: 'JavaScript: The Good Parts'

          genre: Computer

          price: 29.99

          publish_date: !!str 2008-05-01

          description: Unearthing the Excellence in JavaScript

          業(yè)界的年輕人正在迅速采用 YAML 作為他們首選的數(shù)據(jù)序列化和系統(tǒng)配置格式。他們這樣做很機(jī)智。YAML 具有像 CSON 一樣簡(jiǎn)潔的所有好處,以及與 JSON 一樣的數(shù)據(jù)類型解釋的所有功能。YAML 像加拿大人容易相處一樣容易閱讀。

          YAML 有兩個(gè)問題,對(duì)我而言,第一個(gè)是大問題。在撰寫本文時(shí),YAML 解析器尚未內(nèi)置于多種語(yǔ)言,因此你需要使用第三方庫(kù)或擴(kuò)展來為你選擇的語(yǔ)言解析 .yaml 文件。這不是什么大問題,可似乎大多數(shù)為 YAML 創(chuàng)建解析器的開發(fā)人員都選擇隨機(jī)將“附加功能”放入解析器中。有些允許 標(biāo)記化 ,有些允許 鏈引用 ,有些甚至允許內(nèi)聯(lián)計(jì)算。這一切都很好(某種意義上),只是這些功能都不是規(guī)范的一部分,因此很難在其他語(yǔ)言的其他解析器中找到。這導(dǎo)致系統(tǒng)限定,你最終遇到了與 CSON 相同的問題。如果你使用僅在一個(gè)解析器中找到的功能,則其他解析器將無法解釋輸入。大多數(shù)這些功能都是無意義的,不屬于數(shù)據(jù)集,而是屬于你的應(yīng)用程序邏輯,因此最好簡(jiǎn)單地忽略它們和編寫符合規(guī)范的 YAML。

          第二個(gè)問題是很少有解析器完全實(shí)現(xiàn)規(guī)范。所有的基本要素都有,但是很難找到一些更復(fù)雜和更新的東西,比如軟包裝、文檔標(biāo)記和首選語(yǔ)言的循環(huán)引用。我還沒有看到對(duì)這些東西的剛需,所以希望它們不讓你很失望。考慮到上述情況,我傾向于保持 1.1 規(guī)范 中呈現(xiàn)的更成熟的功能集,而避免在 1.2 規(guī)范 中找到的新東西。然而,編程是一個(gè)不斷發(fā)展的怪獸,所以當(dāng)你讀完這篇文章時(shí),你或許就可以使用 1.2 規(guī)范了。

          最終哲學(xué)

          這是最后一段話。每個(gè)序列化語(yǔ)言都應(yīng)該以個(gè)案標(biāo)準(zhǔn)的方式評(píng)價(jià)。當(dāng)涉及機(jī)器的可讀性時(shí),有些 無出其右(the bee’s knees)。對(duì)于人類可讀性,有些 名至實(shí)歸(the cat’s meow),有些只是 金玉其外(gilded turds)。以下是最終細(xì)分:如果你要編寫供其他代碼閱讀的代碼,請(qǐng)使用 YAML。如果你正在編寫能寫出供其他代碼讀取的代碼的代碼,請(qǐng)使用 JSON。最后,如果你正在編寫將代碼轉(zhuǎn)譯為供其他代碼讀取的代碼的代碼,請(qǐng)重新考慮你的人生選擇。


          via: https://www.zionandzion.com/json-vs-xml-vs-toml-vs-cson-vs-yaml/

          作者: Tim Anderson 選題: lujun9972 譯者: GraveAccent 校對(duì): wxy

          本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出

          點(diǎn)擊“了解更多”可訪問文內(nèi)鏈接

          本文件的批量性操作,Excel催化劑已經(jīng)有非常多的功能,常聽說許多人對(duì)Excel催化劑的印象是功能太雜,但試問,不是活在真空世界中做數(shù)據(jù)分析,面對(duì)一大堆雜亂的數(shù)據(jù)環(huán)境,沒有足夠“雜”的功能來應(yīng)付,真的可以稱得上數(shù)據(jù)神器么?

          本篇的兩個(gè)小功能,處理下一般數(shù)據(jù)采集獲取到的非理想文本數(shù)據(jù):帶unicode字符串的文本和帶html特殊符號(hào)的文本。這些功能也是從實(shí)際需求中來。為了讓數(shù)據(jù)處理更加得心應(yīng)手,功能仍然不斷新增。

          網(wǎng)頁(yè)采集數(shù)據(jù)常有的不完善

          一、html編碼問題

          這里說的網(wǎng)頁(yè)采集,當(dāng)然可以最原始的從網(wǎng)頁(yè)上復(fù)制粘貼回來的數(shù)據(jù),更自動(dòng)化的,就是使用網(wǎng)頁(yè)采集工具批量性獲取到的數(shù)據(jù)。

          網(wǎng)頁(yè)html文本,有轉(zhuǎn)義字符如: <(小于號(hào)<) 、 >(大于號(hào)>) 、 (空格)等,這些因?yàn)閔tml上有特定的含義,需要轉(zhuǎn)義成其他輸入字符。

          更多的可見下文截圖:


          最終我們還原后,應(yīng)該得到下面的文本才是想要的。

          二、Unicode格式文本

          我們采集到的數(shù)據(jù)中,可能會(huì)是以下展示的樣式,非英文、數(shù)字的比如中文,用了Unicode字符表示(\u開頭的)。


          我們需要這樣的格式,才是人閱讀和使用的文本。

          解決辦法

          既然這么大的共性情況,肯定是將它落實(shí)到功能上固化,有再次出現(xiàn)時(shí)可以立馬解決,這就是Excel催化劑越來越“雜”的由來。

          處理一個(gè)文件,你說在線轉(zhuǎn)換下就可以,處理100個(gè)、1000個(gè)呢,還會(huì)這樣去做嗎?在Excel催化劑里,必然是批量性操作最佳使用場(chǎng)合。

          自定義函數(shù)處理Excel單元格內(nèi)容

          如果數(shù)據(jù)已經(jīng)落到Excel的單元格里,在做網(wǎng)頁(yè)采集功能時(shí),其實(shí)已經(jīng)將此成套的網(wǎng)頁(yè)采集相關(guān)會(huì)用到的功能都做成了自定義函數(shù)。

          如下的將html的轉(zhuǎn)義字符解碼

          同樣地,Unicode字符串還原為原字符,也有自定義函數(shù)。

          除此以外,還有大量的轉(zhuǎn)換Utf8、從json提取、從xml提取指定元素、Url轉(zhuǎn)碼和還原等一大堆自定義函數(shù)。

          上述自定義函數(shù)使用場(chǎng)景,數(shù)據(jù)源在Excel單元格或提取結(jié)果存儲(chǔ)在Excel單元格,另如果是對(duì)整個(gè)文件的轉(zhuǎn)換,就是本篇開發(fā)的兩個(gè)小功能。

          使用非常簡(jiǎn)單,選擇一個(gè)或多個(gè)待轉(zhuǎn)換的文本文件路徑單元格,當(dāng)只選擇待轉(zhuǎn)換時(shí),轉(zhuǎn)換后的結(jié)果覆蓋原文件,選擇兩列時(shí),右側(cè)列為轉(zhuǎn)換結(jié)果生成新文本,建議采用新生成文件方式。

          任何覆蓋原始文件的操作均有數(shù)據(jù)風(fēng)險(xiǎn),無法恢復(fù)數(shù)據(jù)初始狀態(tài),不是一個(gè)好的科學(xué)的數(shù)據(jù)管理方式。

          結(jié)語(yǔ)

          小功能有大智慧,你能感受到了嗎?盼望Excel催化劑的使用者,會(huì)因?yàn)槠涔δ艿牟粩嘈略龆@喜,因?yàn)橛钟行碌姆爆嵅僮鞅缓?jiǎn)單固化了。

          看到小小的Excel催化劑包含這么多的功能,來應(yīng)對(duì)各種數(shù)據(jù)采集、處理、分析各環(huán)節(jié)的痛點(diǎn),希望催化劑的使用者們,都有慧眼,不用再相信培訓(xùn)機(jī)構(gòu)所吹噓的培訓(xùn)一小時(shí),從此不加班的收割式的忽悠大法。

          應(yīng)對(duì)功能越來越多,請(qǐng)始終堅(jiān)守最佳的Excel催化劑使用方法:搜索+筆記,用到時(shí)即搜即得,日常追更下文章。寫文章者1小時(shí),讀文章者2分鐘即可。


          主站蜘蛛池模板: 亚洲熟女少妇一区二区| 无码人妻精品一区二区三18禁| 精品永久久福利一区二区| 在线视频精品一区| 国精产品一区二区三区糖心 | 中文字幕无码一区二区免费| 精品视频一区二区三区四区 | 日本一区二区视频| 国产精品日本一区二区在线播放| 国产一区在线播放| 亚洲高清一区二区三区电影| 亚洲乱码日产一区三区| 亚洲av高清在线观看一区二区 | 无码人妻一区二区三区兔费| 亚洲av午夜福利精品一区| AV天堂午夜精品一区 | 亚洲精品色播一区二区| 无码一区二区三区老色鬼| 久久久久人妻一区精品| 乱人伦一区二区三区| 国产成人一区二区三区电影网站| 亚洲天堂一区二区三区| 精品无码国产一区二区三区AV | 无码人妻久久一区二区三区蜜桃| 亚洲av无码一区二区三区四区| 无码毛片视频一区二区本码| 在线观看免费视频一区| 中文字幕一区二区在线播放 | 无码少妇A片一区二区三区| 在线成人一区二区| 亚洲AV无码一区二区三区网址| 国产精品香蕉在线一区| 久久精品一区二区三区AV| 久久精品无码一区二区WWW| 亚洲国产精品综合一区在线 | 国产免费一区二区三区免费视频| 一区二区三区电影网| 亚洲国产成人精品久久久国产成人一区二区三区综 | 99精品一区二区三区无码吞精| 制服丝袜一区在线| 亚洲一区二区无码偷拍|