tml文件即超文本标记语言文件文档,是扩展名、后缀名为html的文件。超文本标记语言的结构包括头部分(Head)、和主体部分(Body),其中头部(head)提供关于网页的信息,主体(body)部分提供网页的具体内容。html文件能够被多种网页浏览器读取,传递。我们可以使用电脑上自带的记事本进行编辑htm文件。那么html文件删除如何恢复?
通常情况下当您从电脑存储设备中删除html文件时,该html文件会保存在回收站中。 可以根据需要通过单击还原选项将其还原。 但是不好运的情况下,如果您清空回收站或文件未经过回收站、或使用永久删除键Shift + Delete将文件删除怎么恢复呢?我们可以通过使用数据恢复软件来恢复。
html文件删除恢复步骤如下:
1、首先到官网下载并安装好云骑士数据恢复软件(注意:软件不能安装在丢失盘中),打开云骑士数据恢复软件,根据需要选择恢复功能,这里选择场景模式下的误删除文件。
2、选择好以后选择需要恢复数据的分区,如果是外接设备则可以将它插入电脑中,或者通过读卡器插入电脑,点击开始扫描。
3、扫描结束以后,你会发现有很多数据,这时我们可以通过文件类型进行查找,这里勾选其他文件类型,然后找到了需要的html格式文件。
因为文件丢失后有可能会因各种原因受损,所以遵循先预览再恢复原则,通过预览模式判断文件是否正常再进行恢复。对于无法预览或者不支持预览的是无法判断数据是好的还是坏的,只能恢复出来才能进行查看的。
4、接着在需要恢复的html文件前面进行勾选,选择好以后点击立即恢复按钮。
5、弹出设置文件路径窗口,将文件存储在安全区域中(如果存储盘不够内存,可以外接其他设备进行存储),点击确定按钮。
6、耐心等待文件导出完成,点击查看即可查看恢复出来的html文件了。
知识普及:
导致html文件丢失常见几种原因:
采用来源于Internet的各种各样没经验证的第三方应用程序也许会使您的html文件遭遇风险。
偶尔在下载那些应用程序时,某些恶意病毒也许会进入系统并破坏html文件结构,亦或它们也许会删除桌面上的所有html文件,因此致使大量数据丢失。
在重新分区或调整硬盘大小时,那些html文件也许会遗失。在重新分区时,一个重大的错误也会删除存储了所必需文件的分区,例如DOC、PPT、XLSX和HTML。
总结:以上就是html文件删除恢复教程了,如果在软件使用过程中有不懂的问题,可以咨询专业的在线客服人员为您解答~
本文来自 yqssjhf.com>> 创作不易,转载请注明出处。
天财务一同事打开excel文件后发现用了好几个月的某个表格打开后出错了,里面的内容丢失了一部分,就是关键性的列内容不显示了,如下图
部分单元格内容丢失
那么遇到这种情况这个表格还有救吗?这得看是哪种错误导致的,我们把表格复制到本地,然后打开。
会出现一个错误提示,主要是说有 XML 错误的 /xl/sharedStrings.xml,也就是sharedStrings.xml文件出错了,它是一个共享的单元格内容文件。
我们先把excel文件复制一份,然后把xlsx后缀更改为.rar,并进行解压缩,所有的xlsx文件都是由一堆文件组成的,可以解压为原始的xml文件,如下图。
xml文件语法非常严格,把sharedStrings.xml文件用浏览器打开看看会出现什么样的错语提示,然后再根据提示进行处理,其实在打开Excel文件的时候就提醒我们了,主要是开始标记与结束标记不匹配导致的,开始与结束标记为<si> </si>,只要会点html的话就很容易理解了。
好了,对于这个文件有两种修复方法
可以使用第三方的软件进行修复此问题,但是试了好多个修复工具后发现只有XLSX Open File Tool才能准确的修复,但是它是收费的,不付费只能看不能保存,最便宜价格199元,如果你的文件比较小,丢的内容也不多,对比着修复的内容自己填进去就行了,如果文件大那就购买软件修复吧,留着以后还能用。
如果不想花钱还想要修复文件,那么可以手工进行修复,就是把sharedStrings.xml文件中的开始和结束标记补全就可以了,听起来很复杂,其实很简单,<si>和</si>是一一对应的,两者的数量一样多才对。
第一步:可以使用记事本或vs code编辑器来打开sharedStrings.xml文件,然后进行查找和替换,把所有的</r><si>替换成</r></si><si>,然后保存。
第二步:把修改好的sharedStrings.xml文件替换掉压缩包中的此文件。
第三步:把rar的后缀名再改回xlsx。
双击打开试试,大多数情况下就能正常打开你的Excel文件了。
通过在网上查找资料发现导致这种原因的问题有很多,大致如下
1、表格中不要使用大量的外部链接
2、不要使用复杂的引用,能不引用就尽量别引用
3、不要从网页或软件导出的表格中直接复制粘贴,一些样式会导致此问题
4、不要设置复杂的格式,用多大的地方就设置多少的格式,不要设置格式时选择全表范围
5、有网友说搜狗拼音会导致此问题,尽量注意吧。
项目开发中,你一定遇到过精度丢失的问题!比如某个无良的后端返回了一个超16位的数字订单号,比如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
精度丢失的原因
是什么原因造成的捏?
嗯〜
大道理咱也不会说,问就是一句话回复:
在十进制转二进制的过程中,因js存储位数有限制,末位就会0舍1入取近似值,从而导致再转回十进制时产生误差。
02
如何解决
使用toPrecision
这个方法主要用于纯展示。先用toPrecision保留一定位数的经度,再通过parseFloat展示。
例如:
console.log(parseFloat(0.30000000000000004.toPrecision(12)))
这个12是精度默认值或者说是一个经验值,12位一般都能解决0000...1和0000...9的问题。一般不适合浮点数的运算。
先转整数进行运算,再转成小数
这种方式是我之前浮点运算时经常用到的方法。我们拿0.1+0.2的运算来举例:
let a = (0.1*10 + 0.2*10) / 10
console.log(a) //0.3
但这种方法也不是万能的,有时候也会失精:
console.log(33.41*100) //3340.9999999999995
console.log(2.55*100) //254.99999999999997
真是防不胜防啊!这时候我们也可以使用Math.round()方法来达到我们的目的,如下:
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再取值
给浮点数加上一个极小的数就可以达到目的。获取极小的数有两种方式:
先来看看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
第三方库
第三方库主要介绍以下四种:
安装:
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
官网: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位小数,四舍五入:=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: ƒ}
上面的结果是Decimal 对象,取值需要Number 或 String转换
官网: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
主要是把大数据转成字符串。其实关于这一点,如果后端经验丰富的话,自然会给前端返回字符串,也无需前端转换。不过呢,可能前端的技能的提升也就是从无经验的后端开始的噢!
*请认真填写需求信息,我们会在24小时内与您取得联系。