用HTML代码构建EXCEL文件的最简模板
这个模板是我调试了一段时间弄出来的最简版了
简单说说它的用途吧
在做程序设计时,有时需要导出数据到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打开,提示确认
看,长数字已经变成文本了
此时我本不要去编辑,不然保存后该丢失的还会丢失
跟着我来
点击文件
点击信息-转换
直接确定
问题被完美解决
所以没有什么是解决不了的
重要的是我们要有思路
扫描二维码推送至手机访问