在数据处理过程中,我们经常需要将数据写入csv文件。然而,有时候我们需要保留数字开头的0,这在普通的csv文件中可能会被忽略。本文将介绍一种使用Shell脚本和busybox-w32.exe工具的方法,可以完美地解决这个问题。
今天看到论坛里,有需要保留数字开头的0,写入csv文件的问题。
其实,之前发过的第3个Shell脚本的帖子,就是解决这种问题的,这里稍微说详细一点:
💡 |
#!/bin/sh
echo -e 'Content-type: text/plain; charset=utf-8\n'
tee "../${QUERY_STRING##*\?}"
echo ok
|
这里如果需要存为gbk编码的csv,则在tee前面加上iconv -f utf-8 -t gbk -c |这一句
如果需要带bom的utf8,则在echo前加一行,unix2dos "../${QUERY_STRING##*\?}"
📌 |
function tt()
{
Shell(`busybox httpd -p 8080 -h ${ThisWorkbook.Path}`, jsHide)
let ret = ""
for (let i of ActiveSheet.UsedRange.Value2) {
ret += i.map(x=>`="${x}"`).join(",") + "\n"
}
fetch("http://localhost:8080/cgi-bin/tee.sh?a.csv", {
method: "POST",
body: ret
}).then(r=>{console.log(r.status)})
}
|
意思是通过fetch方法,把ret的内容,写入a.txt
其中ret,是读取表格,用逗号和回车连接行列得到的文本
如果需要双击打开csv时,保留前面的0,需要在数字外面套一层=""
本文提供了一种使用Shell脚本和busybox-w32.exe工具,将数据写入csv文件并保留数字开头的0的方法。同时,还介绍了如何在JS宏中使用fetch方法,将数据写入a.txt文件的详细步骤。这种方法灵活且稳定,可以满足各种不同的需求。
原文链接:https://bbs.wps.cn/topic/34230