一个将 xlsx/xls/csv 转成 csv 或者 json 的工具——xlparser

2018-12-20 15:37:31 +08:00
 a132811

Office 的 Excel 以及 MacOs Numbers 转 CSV 总有乱码、丢数据的问题。 所以写了这个命令脚本 xlparser 做 excel2csv 转换。

希望对大家有用。

Repo

Install

pip3 install xlparser
pip3 install xcut

Usage

$ xlparser -h
Usage: xlparser FILE [options]

    # Convert xlsx to csv
    $ xlparser source.xlsx  > new.csv

    # Convert csv to csv
    $ xlparser source.csv  > new.csv

    # Convert csv to json
    $ xlparser source.csv -json > new.json

    options:
       -h       For help.
       -csv     Export to csv(by default).
       -json    Export to json.

Examples

    $ xlparser src.xlsx | tee test.csv
    name, score
    "李雷,韩梅",15
    小花,16

    $ xlparser src.xlsx | xcut -f name
    name
    "李雷,韩梅"
    小花
    $ xlparser src.xlsx | xcut -f score,name
     score,name
    15,"李雷,韩梅"
    16,小花

3055 次点击
所在节点    分享创造
8 条回复
pmyile
2018-12-20 23:52:43 +08:00
xlsx 的不同 sheet 页可否转呢?
mingyun
2018-12-20 23:54:46 +08:00
λ pip install xcut
Collecting xcut
Could not find a version that satisfies the requirement xcut (from versions: )
No matching distribution found for xcut
a132811
2018-12-21 11:06:48 +08:00
@pmyile 默认只转第一个 sheet。我周末改一下,把它全转了吧
a132811
2018-12-21 11:10:02 +08:00
@mingyun 更新下你的 pip,再看看你的源能不能搜得到

```
$ pip install --upgrade pip
.....

$ pip search xcut
xcut (0.0.10) - Xcut is an Enhanced cut command, which is used to help grep column.
```
a132811
2018-12-21 11:17:07 +08:00
@mingyun 你用的什么源?你也可以使用清华的源
https://mirror.tuna.tsinghua.edu.cn/help/pypi/
jindaodama
2018-12-21 16:08:24 +08:00
推荐用 ssconvert,支持多 sheet,高效便捷。
linux 或者 mac 都可以安装
a132811
2018-12-25 20:38:34 +08:00
@jindaodama
谢谢推荐。
不过我是它希望作为一个 lib 使用。比如提供`xlparser.parse`, `xlparser.saveCsv`

```
>>> from xlparser import parse
>>> rows = parse('some.xlsx')
>>> list(rows)
[['foo', 'bar'], ['看', '我', '变']]
```
另外处理某些 xls 出现的卡死问题(依赖 column_dimensions 本身是不可靠的)


@pmyile 周末忘了说,已经支持多 sheet
usboy
2019-01-18 19:10:33 +08:00
小需求可以用在线工具: https://tableconvert.com 可以通过 import 导入 Excel,转出成 JSON,CSV,SQL,Markdown 各种格式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/519400

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX