Shell脚本——写入csv文件-高效文档技巧使用方法

Shell脚本——写入csv文件

admin 114 2024-08-28 编辑

在数据处理过程中,我们经常需要将数据写入csv文件。然而,有时候我们需要保留数字开头的0,这在普通的csv文件中可能会被忽略。本文将介绍一种使用Shell脚本和busybox-w32.exe工具的方法,可以完美地解决这个问题。

今天看到论坛里,有需要保留数字开头的0,写入csv文件的问题。

其实,之前发过的第3个Shell脚本的帖子,就是解决这种问题的,这里稍微说详细一点:

 

  • 首先需要下载busybox-w32.exe,把它放到环境变量PATH里

  • 然后在当前xlsm文件相同目录下,建立cgi-bin文件夹,里面建立tee.sh文件,内容是

💡

#!/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##*\?}"

  • 然后在xlsm里编辑JS宏,内容是

📌

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

上一篇: 小团队如何高效管考勤
下一篇: 如何创建表格目录?
相关文章