Получить имена рабочих листов Excel в Elixir / Erlang - PullRequest
0 голосов
/ 14 декабря 2018

Существует очень удобный способ чтения файлов Excel в Erlang / Elixir, используя ODBC.

Например:

def open(src) do
    conn = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
    DBQ=#{src};"

    {:ok, pid} =
      :odbc.connect(to_charlist(conn),
        timeout: 10000,
        binary_strings: :on,
        tuple_row: :off,
        scrollable_cursors: :off,
        trace_driver: :off,
        extended_errors: :on
      )

    result = :odbc.sql_query(pid, to_charlist("select * from [Sheet1$]"))

    :odbc.disconnect(pid)

   result
end

Однако для этого нам нужно знать имя листов Excel раньше времени.

Есть ли способ получить список имен листов из файла Excel?

что будетэквивалент OdbcConnection.GetSchema("Tables") в Эрланге?

1 Ответ

0 голосов
/ 14 декабря 2018

Я быстро взглянул на исходный код сервера Erlang ODBC .Если я правильно понимаю, получение списка таблиц требует вызова функции SQLTables в библиотеке ODBC, но на сервере такого вызова нет - так что, насколько я могу судить, это в настоящее время невозможно.(Пул-запрос, реализующий это, вероятно, будет приветствоваться)

...