有谁知道一个简单的工具可以打开一个 CSV 文件并让您对其进行基本的 SQLesque 查询?就像各种图形工具一样,易于使用。
我知道我可以编写一个小脚本来将 CSV 导入 SQLite 数据库,但是因为我想其他人在我之前想到了这一点,所以我只想询问是否存在。促使这个问题的原因是我对 Excel 有限的过滤功能感到沮丧。
也许其他一些数据可视化操作工具会提供类似的功能。
免费或 OSS 是首选,但我愿意接受任何建议。
编辑:
我真的更喜欢一些关于如何执行以下操作的清晰教程,而不仅仅是“使您的工作表成为 ODBC 条目”或“使用 ODBC 文件编写程序”,或者更多关于要使用的应用程序的想法。注意:我不能使用 MS Access。
另一个编辑:
我仍然对使用 SQLite 的解决方案持开放态度。我的平台是一台半老式的 Win2k 笔记本电脑,上面有一个 P4。它非常慢,因此资源轻的解决方案是理想的,并且可能会获胜。
Lud*_*erl 34
我认为OpenOffice.org 数据库可以做你想做的。它是这样工作的。
启动打开 Office.org 数据库,它显示“数据库向导”
选择“连接到现有数据库:文本”

指定文本文件的路径以及分隔符等详细信息。

创建和执行查询

如果您曾经使用过 Microsoft Access,您会发现 GUI 很熟悉。
如果您可以不用 GUI,那么总是可以使用传统的 UNIX 命令。我经常使用它们对(小)CSV 文件进行简单的查询。下面是它的工作原理:
clause operation command
-------------------------------
from join `join`
where restriction `grep`
order by -- `sort`
group by restriction `awk`
having restriction `grep`
select projection `cut`
distinct restriction `uniq`
limit restriction `head`
offset restriction `tail`
Run Code Online (Sandbox Code Playgroud)
sva*_*agt 15
你试过LogParser吗?
日志解析器是一种功能强大的多功能工具,它提供对基于文本的数据(例如日志文件、XML 文件和 CSV 文件)以及 Windows® 操作系统上的关键数据源(例如事件日志、注册表、文件系统和 Active Directory®。您告诉 Log Parser 您需要什么信息以及您希望如何处理这些信息。您的查询结果可以在基于文本的输出中进行自定义格式,也可以保留到更专业的目标,如 SQL、SYSLOG 或图表。
大多数软件旨在完成有限数量的特定任务。Log Parser 是不同的......它可以使用的方式数量仅受用户的需求和想象力的限制。使用 Log Parser,世界就是您的数据库。
一个教程(和另一个在使用SQL像CSV的查询语言)文件,我发现使用谷歌。
示例查询:
logparser -i:CSV "SELECT TOP 10 Time, Count INTO c:\logparser\test\Chart.GIF
FROM c:\logparser\test\log.csv ORDER by Time DESC" -charttype:bar3d
Run Code Online (Sandbox Code Playgroud)
fre*_*tje 13
您可以使用 ODBC 查询文本文件:
请注意,您不需要 MS Access 来执行此操作,上面链接中的教程仅使用 MS Access 创建文本文件,但由于您已经有了文本文件,请向下滚动一半,然后从您看到的位置开始教程标题访问文本文件。
更新:我自己在 .csv 文件上创建了一个 DSN,以便能够创建这个分步教程......它来了:
此时您应该有一个文件 DSN,您可以使用它通过 ODBC 访问您的 .csv 文件。如果您检查放置 .csv 文件的文件夹,您将看到一个 schema.ini 文件,其中包含您刚刚创建的配置。当您有多个 .csv 文件时,每个文件对应一个表,每个表将在 schema.ini 文件中有一个 [ filename .csv] 块,其中定义了不同的列...您还可以创建/更改该架构.ini 文件直接在文本编辑器中,而不是使用上述 GUI。
至于您的额外问题“如何使用查询工具连接到此 ODBC 提供程序”:
我有一个我很久以前自己编写的工具,但不符合发布条件。但是在谷歌上快速搜索了odbc-view,这是一个免费软件工具,可以满足您的需求。
我下载并安装了该工具。
启动工具后:
您现在应该会在下方窗格中看到 .csv 文件的内容。
希望这会有所帮助...让我知道你是怎么做的,或者如果你需要进一步的帮助。
我发现实现这一点的最简单方法是使用 SQLite 的内置 CSV 导入功能:
sqlite3 mydatabase.sqlitesqlite> .mode csvsqlite> .import mydata.csv <tablename>现在您有了一个可以随意查询的工作数据库。我也发现上面的性能很好,我在 10-15 秒内只导入了 300 万行。
小智 5
您始终可以将文件读入 Excel 并通过 ODBC 将 Excel 用作数据源并对其运行查询。