精易论坛

标题: 超级列表框导出CSV文件 [打印本页]

作者: 浅浅`    时间: 2019-10-21 14:41
标题: 超级列表框导出CSV文件
论坛找了很久的导出csv没有找到现成的,干脆自己花了十几分钟写了一个
格式很简单,简单写了一下自己够用的,其他的格式要求大家可以根据文档改:https://wenku.baidu.com/view/56983e2458fb770bf78a55d2.html

  
子程序名返回值类型公开备 注
超级列表框导出csv逻辑型 
参数名类 型参考可空数组备 注
要导出的超级列表框超级列表框
通用对话框通用对话框
变量名类 型静态数组备 注
内容中间部分文本型 
c整数型 
i整数型 
表头文本型 
内容文本型 
列数整数型 
项数整数型 
tmp文本型 
列数 = 要导出的超级列表框.取列数 ()
项数 = 要导出的超级列表框.取表项数 ()
计次循环首 (列数, i)
内容 = 内容 + 要导出的超级列表框.取列标题 (i - 1)
如果真 (列数 ≠ i)
内容 = 内容 + “,”

计次循环尾 ()
内容 = 内容 + #换行符
计次循环首 (项数, i)
内容中间部分 = “”
计次循环首 (列数, c)
tmp = 要导出的超级列表框.取标题 (i - 1, c - 1)
如果真 (寻找文本 (tmp, “,”, , ) ≠ -1)  ' csv文件如果有逗号要双引号包裹
tmp = #左引号 + tmp + #右引号
如果真 (寻找文本 (tmp, #换行符, , ) ≠ -1)  ' csv文件如果有换行符要括起来
tmp = “(” + tmp + “)”

内容中间部分 = 内容中间部分 + tmp
如果真 (c ≠ 列数)
内容中间部分 = 内容中间部分 + “,”

计次循环尾 ()
内容 = 内容 + 内容中间部分
如果真 (i ≠ 项数)
内容 = 内容 + #换行符

计次循环尾 ()
通用对话框.类型 = 1
通用对话框.默认文件后缀 = “.csv”
通用对话框.过滤器 = “csv文件 (*.csv)|*.csv”
如果 (通用对话框.打开 ())
返回 (写到文件 (通用对话框1.文件名, 到字节集 (内容)))



返回 ()


i支持库列表   支持库注释   
iext扩展界面支持库一



补充内容 (2020-10-21 12:07):
有bug,已经修复,看回复的一楼有bug,已经修复,看回复的一楼有bug,已经修复,看回复的一楼[...

补充内容 (2020-10-21 12:07):
有bug,已经修复,看回复的一楼

补充内容 (2020-10-21 12:07):
有bug,已经修复,看回复的一楼
作者: 努力赚钱的猪    时间: 2019-10-21 16:40
插眼,可能有需要哦。
作者: wjswzj0    时间: 2019-10-21 22:51
支持开源~!感谢分享

作者: 372510145    时间: 2019-10-21 23:41

作者: 发稿人    时间: 2019-10-22 09:05
昨天 16:40
插眼,可能有需要哦
作者: 发稿人    时间: 2019-10-22 09:06

插眼,可能有需要哦
作者: 德友    时间: 2019-10-23 03:48
简单的来看看《留下点痕迹》
作者: orjg    时间: 2019-10-23 11:47
支持开源~!感谢分享
作者: 亿悠    时间: 2019-10-25 21:13
支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享
作者: 神2    时间: 2019-11-4 11:44
这个 E2EE增强模块可以直接导出超级列表框到CSV, JSON的。
作者: sostemp    时间: 2019-11-4 16:19
感谢分享,很给力!~
作者: harryzhu    时间: 2019-11-18 15:57
感谢分享,很给力!~
作者: oursn    时间: 2019-12-16 12:54
简单又实用非常不错
作者: 你是我的眼哦    时间: 2020-1-21 13:11
支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享支持开源~!感谢分享
作者: 深爱者    时间: 2020-8-6 15:12

另类导出CSV.e (855.04 KB, 下载次数: 25)

作者: 浅浅`    时间: 2020-8-6 15:50
深爱者 发表于 2020-8-6 15:12

如果字段中有逗号(,),该字段使用双引号(")括起来;
如果该字段中有双引号,该双引号前要再加一个双引号,然后把该字段使用双引号括起来。
看完project manager的要求,我真是满头起包啊。在IT业混了十几年了,竟然不知道这样处理逗号。
举几个例子:

字段处理前
字段处理后
abc,d2
"abc,d2"
ab"c,d2
"ab""c,d2"
"abc
"""abc"
""
""""""



作者: 浅浅`    时间: 2020-10-21 12:06
  
子程序名返回值类型公开备 注
超级列表框导出csv逻辑型 
参数名类 型参考可空数组备 注
要导出的超级列表框超级列表框
通用对话框通用对话框
变量名类 型静态数组备 注
内容中间部分文本型 
c整数型 
i整数型 
表头文本型 
内容文本型 
列数整数型 
项数整数型 
tmp文本型 
列数 = 要导出的超级列表框.取列数 ()
项数 = 要导出的超级列表框.取表项数 ()
计次循环首 (列数, i)
内容 = 内容 + 要导出的超级列表框.取列标题 (i - 1)
如果真 (列数 ≠ i)
内容 = 内容 + “,”

计次循环尾 ()
内容 = 内容 + #换行符
计次循环首 (项数, i)
内容中间部分 = “”
计次循环首 (列数, c)
tmp = 要导出的超级列表框.取标题 (i - 1, c - 1)
tmp = 子文本替换 (tmp, #换行符, “ ”, , , )
如果真 (寻找文本 (tmp, “,”, , ) ≠ -1)  ' csv文件如果有逗号要双引号包裹
tmp = #引号 + tmp + #引号
如果真 (寻找文本 (tmp, #换行符, , ) ≠ -1)  ' csv文件如果有换行符要双引号包裹
tmp = #引号 + tmp + #引号

内容中间部分 = 内容中间部分 + tmp
如果真 (c ≠ 列数)
内容中间部分 = 内容中间部分 + “,”

计次循环尾 ()
内容 = 内容 + 内容中间部分
如果真 (i ≠ 项数)
内容 = 内容 + #换行符

计次循环尾 ()
通用对话框.类型 = 1
通用对话框.默认文件后缀 = “.csv”
通用对话框.过滤器 = “csv文件 (*.csv)|*.csv”
如果 (通用对话框.打开 ())
返回 (写到文件 (通用对话框1.文件名, 到字节集 (内容)))


返回 ()


i支持库列表   支持库注释   
iext扩展界面支持库一


作者: 浅浅`    时间: 2020-12-9 14:20
深爱者 发表于 2020-8-6 15:12

已经修复了,看置顶。
作者: 零玖电脑    时间: 2021-9-22 22:16
那个是正确的吗?
作者: 9skybug    时间: 2024-3-9 22:20
支持开源~!感谢分享
作者: 1300886755    时间: 2024-5-19 13:14
感谢分享
作者: aipca    时间: 2024-11-7 14:14
导出的表格EXCEL不能有效的识别出分隔符 全在一行里是什么情况?




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4