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

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

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

          html文件刪除如何恢復(fù)?恢復(fù)誤刪html文件教程

          tml文件即超文本標(biāo)記語(yǔ)言文件文檔,是擴(kuò)展名、后綴名為html的文件。超文本標(biāo)記語(yǔ)言的結(jié)構(gòu)包括頭部分(Head)、和主體部分(Body),其中頭部(head)提供關(guān)于網(wǎng)頁(yè)的信息,主體(body)部分提供網(wǎng)頁(yè)的具體內(nèi)容。html文件能夠被多種網(wǎng)頁(yè)瀏覽器讀取,傳遞。我們可以使用電腦上自帶的記事本進(jìn)行編輯htm文件。那么html文件刪除如何恢復(fù)?

          通常情況下當(dāng)您從電腦存儲(chǔ)設(shè)備中刪除html文件時(shí),該html文件會(huì)保存在回收站中。 可以根據(jù)需要通過(guò)單擊還原選項(xiàng)將其還原。 但是不好運(yùn)的情況下,如果您清空回收站或文件未經(jīng)過(guò)回收站、或使用永久刪除鍵Shift + Delete將文件刪除怎么恢復(fù)呢?我們可以通過(guò)使用數(shù)據(jù)恢復(fù)軟件來(lái)恢復(fù)。

          html文件刪除恢復(fù)步驟如下:

          1、首先到官網(wǎng)下載并安裝好云騎士數(shù)據(jù)恢復(fù)軟件(注意:軟件不能安裝在丟失盤中),打開云騎士數(shù)據(jù)恢復(fù)軟件,根據(jù)需要選擇恢復(fù)功能,這里選擇場(chǎng)景模式下的誤刪除文件。

          2、選擇好以后選擇需要恢復(fù)數(shù)據(jù)的分區(qū),如果是外接設(shè)備則可以將它插入電腦中,或者通過(guò)讀卡器插入電腦,點(diǎn)擊開始掃描。

          3、掃描結(jié)束以后,你會(huì)發(fā)現(xiàn)有很多數(shù)據(jù),這時(shí)我們可以通過(guò)文件類型進(jìn)行查找,這里勾選其他文件類型,然后找到了需要的html格式文件。

          因?yàn)槲募G失后有可能會(huì)因各種原因受損,所以遵循先預(yù)覽再恢復(fù)原則,通過(guò)預(yù)覽模式判斷文件是否正常再進(jìn)行恢復(fù)。對(duì)于無(wú)法預(yù)覽或者不支持預(yù)覽的是無(wú)法判斷數(shù)據(jù)是好的還是壞的,只能恢復(fù)出來(lái)才能進(jìn)行查看的。

          4、接著在需要恢復(fù)的html文件前面進(jìn)行勾選,選擇好以后點(diǎn)擊立即恢復(fù)按鈕。

          5、彈出設(shè)置文件路徑窗口,將文件存儲(chǔ)在安全區(qū)域中(如果存儲(chǔ)盤不夠內(nèi)存,可以外接其他設(shè)備進(jìn)行存儲(chǔ)),點(diǎn)擊確定按鈕。

          6、耐心等待文件導(dǎo)出完成,點(diǎn)擊查看即可查看恢復(fù)出來(lái)的html文件了。

          知識(shí)普及:

          導(dǎo)致html文件丟失常見幾種原因:

          采用來(lái)源于Internet的各種各樣沒經(jīng)驗(yàn)證的第三方應(yīng)用程序也許會(huì)使您的html文件遭遇風(fēng)險(xiǎn)。

          偶爾在下載那些應(yīng)用程序時(shí),某些惡意病毒也許會(huì)進(jìn)入系統(tǒng)并破壞html文件結(jié)構(gòu),亦或它們也許會(huì)刪除桌面上的所有html文件,因此致使大量數(shù)據(jù)丟失。

          在重新分區(qū)或調(diào)整硬盤大小時(shí),那些html文件也許會(huì)遺失。在重新分區(qū)時(shí),一個(gè)重大的錯(cuò)誤也會(huì)刪除存儲(chǔ)了所必需文件的分區(qū),例如DOC、PPT、XLSX和HTML。

          總結(jié):以上就是html文件刪除恢復(fù)教程了,如果在軟件使用過(guò)程中有不懂的問(wèn)題,可以咨詢專業(yè)的在線客服人員為您解答~

          本文來(lái)自 yqssjhf.com>> 創(chuàng)作不易,轉(zhuǎn)載請(qǐng)注明出處。

          天財(cái)務(wù)一同事打開excel文件后發(fā)現(xiàn)用了好幾個(gè)月的某個(gè)表格打開后出錯(cuò)了,里面的內(nèi)容丟失了一部分,就是關(guān)鍵性的列內(nèi)容不顯示了,如下圖

          部分單元格內(nèi)容丟失

          那么遇到這種情況這個(gè)表格還有救嗎?這得看是哪種錯(cuò)誤導(dǎo)致的,我們把表格復(fù)制到本地,然后打開。

          會(huì)出現(xiàn)一個(gè)錯(cuò)誤提示,主要是說(shuō)有 XML 錯(cuò)誤的 /xl/sharedStrings.xml,也就是sharedStrings.xml文件出錯(cuò)了,它是一個(gè)共享的單元格內(nèi)容文件。

          我們先把excel文件復(fù)制一份,然后把xlsx后綴更改為.rar,并進(jìn)行解壓縮,所有的xlsx文件都是由一堆文件組成的,可以解壓為原始的xml文件,如下圖。

          xml文件語(yǔ)法非常嚴(yán)格,把sharedStrings.xml文件用瀏覽器打開看看會(huì)出現(xiàn)什么樣的錯(cuò)語(yǔ)提示,然后再根據(jù)提示進(jìn)行處理,其實(shí)在打開Excel文件的時(shí)候就提醒我們了,主要是開始標(biāo)記與結(jié)束標(biāo)記不匹配導(dǎo)致的,開始與結(jié)束標(biāo)記為<si> </si>,只要會(huì)點(diǎn)html的話就很容易理解了。

          好了,對(duì)于這個(gè)文件有兩種修復(fù)方法

          第三方軟件修復(fù)

          可以使用第三方的軟件進(jìn)行修復(fù)此問(wèn)題,但是試了好多個(gè)修復(fù)工具后發(fā)現(xiàn)只有XLSX Open File Tool才能準(zhǔn)確的修復(fù),但是它是收費(fèi)的,不付費(fèi)只能看不能保存,最便宜價(jià)格199元,如果你的文件比較小,丟的內(nèi)容也不多,對(duì)比著修復(fù)的內(nèi)容自己填進(jìn)去就行了,如果文件大那就購(gòu)買軟件修復(fù)吧,留著以后還能用。

          手工修復(fù)

          如果不想花錢還想要修復(fù)文件,那么可以手工進(jìn)行修復(fù),就是把sharedStrings.xml文件中的開始和結(jié)束標(biāo)記補(bǔ)全就可以了,聽起來(lái)很復(fù)雜,其實(shí)很簡(jiǎn)單,<si>和</si>是一一對(duì)應(yīng)的,兩者的數(shù)量一樣多才對(duì)。

          第一步:可以使用記事本或vs code編輯器來(lái)打開sharedStrings.xml文件,然后進(jìn)行查找和替換,把所有的</r><si>替換成</r></si><si>,然后保存。

          第二步:把修改好的sharedStrings.xml文件替換掉壓縮包中的此文件。

          第三步:把rar的后綴名再改回xlsx。

          雙擊打開試試,大多數(shù)情況下就能正常打開你的Excel文件了。

          怎么避免Excel文件中開始與結(jié)束標(biāo)記不匹配的問(wèn)題了

          通過(guò)在網(wǎng)上查找資料發(fā)現(xiàn)導(dǎo)致這種原因的問(wèn)題有很多,大致如下

          1、表格中不要使用大量的外部鏈接

          2、不要使用復(fù)雜的引用,能不引用就盡量別引用

          3、不要從網(wǎng)頁(yè)或軟件導(dǎo)出的表格中直接復(fù)制粘貼,一些樣式會(huì)導(dǎo)致此問(wèn)題

          4、不要設(shè)置復(fù)雜的格式,用多大的地方就設(shè)置多少的格式,不要設(shè)置格式時(shí)選擇全表范圍

          5、有網(wǎng)友說(shuō)搜狗拼音會(huì)導(dǎo)致此問(wèn)題,盡量注意吧。

          最重要的是數(shù)據(jù)和文件要養(yǎng)成經(jīng)常備份的好習(xí)慣

          項(xiàng)目開發(fā)中,你一定遇到過(guò)精度丟失的問(wèn)題!比如某個(gè)無(wú)良的后端返回了一個(gè)超16位的數(shù)字訂單號(hào),比如0.1+0.2 != 0.3等等:

          let a = 0.1235678912345623456
          console.log(a)
          let b = 256.1235678912345623456
          console.log(b)
          let c = 0.1
          let d = 0.2
          console.log(c + d)
          let e = 2.55
          let f = 1.55
          console.log(e.toFixed(1))
          console.log(f.toFixed(1))



          01

          精度丟失的原因

          是什么原因造成的捏?

          嗯?

          大道理咱也不會(huì)說(shuō),問(wèn)就是一句話回復(fù):

          在十進(jìn)制轉(zhuǎn)二進(jìn)制的過(guò)程中,因js存儲(chǔ)位數(shù)有限制,末位就會(huì)0舍1入取近似值,從而導(dǎo)致再轉(zhuǎn)回十進(jìn)制時(shí)產(chǎn)生誤差。



          02

          如何解決


          • 使用toPrecision;
          • 乘以10的N次冪轉(zhuǎn)換成整數(shù),再除以N次冪轉(zhuǎn)回小數(shù);
          • 先加上1e-14或Number.EPSILON再取值;
          • 使用第三方庫(kù),處理大數(shù)的 bignumber.js,處理小數(shù)的number-precision 和 decimal.js,處理JSON序列化json-bigint。

          使用toPrecision


          這個(gè)方法主要用于純展示。先用toPrecision保留一定位數(shù)的經(jīng)度,再通過(guò)parseFloat展示。

          例如:

          console.log(parseFloat(0.30000000000000004.toPrecision(12)))

          這個(gè)12是精度默認(rèn)值或者說(shuō)是一個(gè)經(jīng)驗(yàn)值,12位一般都能解決0000...1和0000...9的問(wèn)題。一般不適合浮點(diǎn)數(shù)的運(yùn)算。


          先轉(zhuǎn)整數(shù)進(jìn)行運(yùn)算,再轉(zhuǎn)成小數(shù)


          這種方式是我之前浮點(diǎn)運(yùn)算時(shí)經(jīng)常用到的方法。我們拿0.1+0.2的運(yùn)算來(lái)舉例:

          let a = (0.1*10 + 0.2*10) / 10
          console.log(a) //0.3

          但這種方法也不是萬(wàn)能的,有時(shí)候也會(huì)失精:

          console.log(33.41*100) //3340.9999999999995
          console.log(2.55*100)  //254.99999999999997

          真是防不勝防??!這時(shí)候我們也可以使用Math.round()方法來(lái)達(dá)到我們的目的,如下:

          console.log(Math.round(33.41*100))  //3341
          console.log(Math.round(2.55*100))  //255
          console.log((Math.round(0.1*10) + Math.round(0.2*10)) / 10)  //0.3

          先加上1e-14或Number.EPSILON再取值


          給浮點(diǎn)數(shù)加上一個(gè)極小的數(shù)就可以達(dá)到目的。獲取極小的數(shù)有兩種方式:

          • 1e-14(10的-14次方)
          • ES6的極小的常量Number.EPSILON


          先來(lái)看看Number.EPSILON是什么?

          console.log(Number.EPSILON)  //2.220446049250313e-16
          console.log(Number.EPSILON.toFixed(20))  //0.00000000000000022204

          這兩種方式都可以,看自己的喜好啦!

          let a = 0.1235678912345623456
          console.log((a+1e-14).toFixed(1)) //0.1
          console.log((0.1 + Number.EPSILON + 0.2 + Number.EPSILON).toFixed(1))
          //0.3

          第三方庫(kù)

          第三方庫(kù)主要介紹以下四種:

          • bignumber.js的使用-處理大數(shù)

          安裝:

          npm install --save bignumber.js

          引入:

          import BigNumber from 'bignumber.js';

          使用:

          const a = new BigNumber(0.2);
          const b = new BigNumber(0.1)
          let c = a.plus(b)
          console.log(c) //BigNumber {s: 1, e: -1, c: Array(1)}
          console.log(c.toString())  //0.3
          console.log(c.toNumber())  //0.3

          官網(wǎng):https://mikemcl.github.io/bignumber.js/


          • number-precision的使用-處理小數(shù)

          安裝:

          npm install number-precision --save

          引入:

          import NP from 'number-precision';

          使用:

          console.log(NP.strip(0.09999999999999998)); // 四舍五入:=0.1
          console.log(NP.round(0.105, 2)) //取2位小數(shù),四舍五入:=0.11
          console.log(NP.plus(2.3, 2.6)); // 加:=4.9
          console.log(NP.minus(1.0, 0.9)); // 減:=0.1
          console.log(NP.times(3, 0.3)); // 乘:=0.9
          console.log(NP.divide(0.9, 0.3)); // 除:=3
          console.log(NP.plus(0.1, 0.2))


          • number-precision的使用-處理小數(shù)

          安裝:

          npm install --save decimal.js

          引入:

          import Decimal from "decimal.js"

          使用:

          console.log(Decimal(0.1).add(Decimal(0.2))); // 加: {s: 1, e: -1, d: Array(1), constructor: ?}
          console.log(Decimal(0.1).sub(Decimal(0.2))); // 減:{s: -1, e: -1, d: Array(1), constructor: ?}
          console.log(Decimal(0.1).mul(Decimal(0.2))); // 乘:{s: 1, e: -2, d: Array(1), constructor: ?}
          console.log(Decimal(0.1).div(Decimal(0.2))); // 除:{s: 1, e: -1, d: Array(1), constructor: ?}

          上面的結(jié)果是Decimal 對(duì)象,取值需要Number 或 String轉(zhuǎn)換

          官網(wǎng):http://mikemcl.github.io/decimal.js/


          • json-bigint的使用-處理后端的返回值

          安裝:

          npm install json-bigint

          引入:

          import JSONBigInt from 'json-bigint';
          const JSONBigIntNative = JSONBigInt();

          使用:

          let json = "{\"order\":258431607934229718,\"price\":1.258431607934229718,\"no\":123456}"
          const obj1 = JSON.parse(json)
          const obj2 = JSONBigIntNative.parse(json)
          console.log(obj1) //{order: 258431607934229730, price: 1.2584316079342297, no: 123456}
          console.log(obj2.order.toString())  //258431607934229718
          console.log(obj2.price.toString())  //1.258431607934229718
          console.log(obj2.order.toNumber())  //258431607934229730
          console.log(obj2.price.toNumber())  //1.2584316079342297

          主要是把大數(shù)據(jù)轉(zhuǎn)成字符串。其實(shí)關(guān)于這一點(diǎn),如果后端經(jīng)驗(yàn)豐富的話,自然會(huì)給前端返回字符串,也無(wú)需前端轉(zhuǎn)換。不過(guò)呢,可能前端的技能的提升也就是從無(wú)經(jīng)驗(yàn)的后端開始的噢!


          主站蜘蛛池模板: 国产精品高清一区二区三区 | 日本一区二区三区四区视频| 亚洲日本乱码一区二区在线二产线| 亚洲国产一区在线| 久久精品国产一区二区三区不卡| 91精品一区二区三区在线观看| 精品一区二区三区高清免费观看 | 亚洲一区无码中文字幕乱码| 成人免费一区二区三区| 久久精品无码一区二区三区日韩 | 久久国产精品视频一区| 国模视频一区二区| 亚欧色一区W666天堂| 中文字幕一区二区三区5566| 国产91久久精品一区二区| 蜜臀AV在线播放一区二区三区| 亚洲熟妇av一区二区三区| 日韩免费视频一区二区| 国产成人精品久久一区二区三区| 亚洲综合色一区二区三区小说| 亚洲国产精品一区二区久| 亚洲av色香蕉一区二区三区蜜桃| 日本一区二区三区在线观看视频| 国产一区二区在线观看视频| 久久国产三级无码一区二区| 日本道免费精品一区二区| 一区二区三区国产精品| 国产福利在线观看一区二区| 日本一区二区在线| 成人毛片一区二区| 人妻无码第一区二区三区| 亚洲日韩中文字幕无码一区| 精品乱码一区内射人妻无码| 亚洲爆乳无码一区二区三区| 亚洲丶国产丶欧美一区二区三区| 无码人妻一区二区三区精品视频| 人妻天天爽夜夜爽一区二区| 免费一区二区三区四区五区| 亚洲国产视频一区| 国产成人无码精品一区二区三区 | 国产一区在线视频|