【问题标题】:Does exist any racket library allowing reading excel files?是否存在任何允许读取 excel 文件的球拍库?
【发布时间】:2017-10-05 19:13:00
【问题描述】:

是否存在任何允许读取 excel 文件的球拍库?我只需要阅读没有任何公式等的简单电子表格。

【问题讨论】:

标签: excel racket


【解决方案1】:

你可以试试这个包:simple-xlsx: read and write .xlsx file.

https://pkgs.racket-lang.org/package/simple-xlsx

【讨论】:

  • 是否支持公式求值?
  • 我是simple-xlsx包的作者,还不支持公式。如果你想要公式支持,请发起一个问题。我很高兴为此工作。
【解决方案2】:

这取决于电子表格的格式化方式。我的标准做法是使用 Excel 以 .csv 文件的形式导出数据,然后使用 Neil Van Dyke 的 csv-reading 包进行解析。

这对你有帮助吗?

【讨论】:

  • 是的,这是一种选择,但我需要从用户角度来看可靠的解决方案。如果用户需要将 xlsx 转换为 csv,则存在巨大的错误空间。我发现phpexcel工具允许读取excel文件,可能在球拍中存在类似的东西,谢谢
  • Excel 的内部格式有时会成为移动目标。我只是快速阅读了一下,似乎该格式实际上已记录在案(做得很好,Microsoft),但它被表示为对其他两个现有 ISO 标准(可能每几百页)的 300 页扩展。从好的方面来说,它听起来实际上是一种 XML 语言,所以你绝对可以从使用 Racket 的 sxml 包开始。除此之外,您可能会为有限的 xlsx 文件子集组合一些非常可靠的东西。不过,这并不容易。
【解决方案3】:

这是一个不需要任何额外软件包的版本。它假设您从 Excel 以 csv (comma separated values) 格式导出文件。 它可能不如专用包强大,但对于简单的目的可能已经足够了:

#lang racket

(define lines (file->lines "my-csv-file.csv"))

; Change this to the character you chose for separating values when
; exporting the file in csv format (comma "," by default)
(define sep (regexp-quote ",")) 

(map (λ(l)(string-split l sep #:trim? #f #:repeat? #t))
     lines)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多