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ù)方法
可以使用第三方的軟件進(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ù)文件,那么可以手工進(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文件了。
通過(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)題,盡量注意吧。
項(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
這個(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ù)有兩種方式:
先來(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ù)主要介紹以下四種:
安裝:
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/
安裝:
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))
安裝:
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/
安裝:
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)的后端開始的噢!
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。