我有一个包含6列和数千行的数据库,我想将内容导出到单独的命名文本文件中。
id title text text_2
1 blah lorem ipsem... indigo violet...
2 gunf ipsem lorem... up down left...
3 faff sir I have a... amarillo albuquerque...
我想为每一行创建以下文本文件:
filename = id - title.txt; content = title
filename = id - title.txt; content = text
filename = id - title.txt; content = text_2
我看了,想不到怎么做。我以前在Excel中使用宏来将单元格转换为txt,但文本对于Excel的单元格字符限制来说太大了。
我正在使用SQLite,但我并不喜欢它(如果我能避免的话,宁愿不必购买程序)。
有关该怎么做的任何建议?虽然不太技术,但我可以遵循一些基本代码。
答案 0 :(得分:0)
您可以使用SQLiteStudio 3.x.x及其自定义SQL函数。
打开"自定义SQL函数编辑器" (带有" fx"图标的那个)并添加新功能,让我们称之为saveToFile
。选择Tcl
作为实施语言(位于右上角),离开"输入"为Scalar
。如果你想要,你可以定义输入参数(它不是强制性的,它只是让代码助手在以后调用这个函数时会帮助你):fileName
和contents
。保持"注册所有数据库"也可以。选项。
现在最重要的事情 - 输入以下实施代码:
if {[catch {
lassign $argv fileName contents
set fd [open "C:/tmp/a/$fileName" a+]
puts $fd $contents
close $fd
} res]} {
return "error: $res"
} else {
return "ok"
}
代码包含C:/tmp/a
,它是创建文件的目录路径。将其更改为您想要的任何内容。该目录必须存在。
提交你的功能(提交按钮位于功能编辑器之上)。
现在打开SQL编辑器窗口(带有空白纸和铅笔的窗口)并输入如下查询:
SELECT saveToFile(id || ' - ' || title || '.txt', title || x'0a' || text || x'0a' || text_2) AS result FROM table_name;
此查询将在每行创建一个文件,并将title
,text
和text_2
列作为文件中的3个单独行。
当没有问题时,查询将返回每个行状态ok
,或者当出现问题时,error: ...
会返回错误详细信息,例如创建文件。