当前位置:首页 > 办公资料 > 正文内容

用HTML代码构建EXCEL文件的最简模板

CCSSRW3年前 (2022-04-22)办公资料1966

这个模板是我调试了一段时间弄出来的最简版了

简单说说它的用途吧

在做程序设计时,有时需要导出数据到EXCEL,这个过程有很多的方法

而我则需要寻找一种最简单的思路

起初,我是直接按照CSV格式导出的,当然这一切都非常顺利,但导出的数据在EXCEL中打开时,长数字文本被无情的科学化了

后来,我尝试直接将数据导出为html标志,当然这一切也都非常顺利,但导出的数据在EXCEL中打开时,长数字文本依然被无情的科学化了

我就在想能否在html中标识出文本,这样就不会轻易被科学化了

经过查阅,发现还真的可以,

现说重点

在<html>标记里加入xmlns:x="urn:schemas-microsoft-com:office:excel"

同时由于数据类型的问题

根据实际需要在单元格<td>标记中加入相应的的定义

单元格为字符串的加入 x:str

单元格为数字的加入 x:num

这样,对应的数据就能被准确识别了


其实这套源码的本质就是html的几个基础标记,"table"、"tr"、"td"

不作过多解释了

<html xmlns:x="urn:schemas-microsoft-com:office:excel">
<table border=1><tr><td>A</td><td>B</td><td>C</td><td>D</td></tr>
<tr><td >A1</td><td>B1</td><td>C1</td><td x:str>123456789000</td></tr>
<tr><td >A2</td><td>B2</td><td>C2</td><td x:str>000987654321</td></tr>
</table>

需要注意

如果文本中有回车符是需要额外处理的,否则解果会有两个

其一,直接输出回车符在excel里打开在单元格内是没有换行效果的

其二,如果单纯的将回车符替换为<br>标记,那么同一行的数据会按标记符拆分行

正确的做法是将回车符替换为<br style=mso-data-placement:same-cell;>


现在说说后续的处理

打开记事本将复制这段代码,保存为xls格式,用EXCEL打开,提示确认

image.png


看,长数字已经变成文本了

image.png


此时我本不要去编辑,不然保存后该丢失的还会丢失

跟着我来

点击文件

image.png


点击信息-转换

image.png


直接确定

image.png


问题被完美解决

所以没有什么是解决不了的

重要的是我们要有思路

扫描二维码推送至手机访问

本文链接:http://xinrui.ren/post/137.html