零、概述
上一篇文章Excel单元格格式&指定范围大批量数据填充介绍了如何进行单元格格式化的内容。(如果没有单元格格式化的基础,则可以去看看)
那么,如果你有实际去观察就会发现,虽然显示出来的数据,确实就是我们所期待的那样,但是,它们只具备展示效果,实际的值还是我们设置的单元格的原始数据值。
例如上一篇的例子中。A1单元格虽然显示的是A12BC00001,但是当你进行复制时会附带单元格格式一起复制过去,或者读取时,获得的都是1,也就是原始数据值。
那么,怎么把这些我们好不容易生成出来的显示出来的数据值,、变成原始数据值呢?
0.1 前端sheetJS读取示例
很神奇的是,读取的时候,第一行作为key可以获取到格式化后的值,但是第二行开始作为value,就只能获取到原始数据值。(或许有什么解决办法?此处有待后续进一步探索)
这里提供了两种方式(测试基于版本:Excel 2021、Excel2016):
生成文件的方式。
直接在原文件上操作的方式。
请自行抉择哪种更为适用。
一、方式一
首先,假设我有一个充分利用单元格格式化后的excel表格(图中所有数据都是经过格式化后的)。
例如:
这里每个单元格都经过了格式化
现在,点击左上角的文件
点击另存为,然后点击浏览(这里也可以改成使用导出)
选择一个文件夹来存放即将生成的csv文件,注意以csv的格式导出
此时你会发现,csv文件中的数据,就是格式化后的
此时,如果你还是想要一个xls或者xlsx的文件
那么,可以使用excel打开这个csv文件,然后以刚刚一样的方式,将csv文件另存为一个xlsx文件,此时xlsx文件的内容也是格式化后的数据
注意:如果打开csv文件时,出现日期显示成###情况,只需要改一下单元格宽度就行
拖动放大单元格宽度,就好了
把csv文件另存为xlsx文件(此处使用导出也是ok的):
点击左上角的文件
点击另存为,然后点击浏览
选择一个文件夹来存放即将生成的xlsx文件,注意以xlsx的格式导出
此时你会发现,xlsx文件中的数据,就是格式化后的(和csv里的一样)
二、方式二
点击打开剪切板
此时会弹出剪切板窗口
选中要进行转换的显示出来的数据值(如果要按列选,就点击列名进行按列选中)
按 Ctrl+C组合键 (或者右键 -> 复制)将选中的数据进行复制
此时你会看到,剪切板上显示出来了你刚刚复制的内容
注:如果你要处理的数据量很大(比如十万条数据),那么就得看你电脑性能了,有可能会卡住。
如果你复制错了,没关系,这里可以进行删除
那么,现在,假设你已经完美复制了你要进行转换的数据。
请选择一个空白的区域,这个区域将用于填充你所需要的转换后的值(注意:这块空白区域的单元格数量要等同于你复制的数据的量)。
比如我就直接在旁边选了一块区域准备用来赋值。
点击“全部粘贴”,则你要的数据就粘贴到了这片选中的空白区域。
转换完毕!
现在,新的这些数据,展示值就是原数据,原数据就是展示值。
如果旧的数据已经不需要了,可以直接删掉。
如图: