Требуется помощь в разборе библиотеки по работе с Excel

Есть такая библиотека для работы с Excel файлами:
https://docs.rs/crate/calamine/0.16.1
(Обратить внимание в даной странице на абзац Reader: Simple)

для того что бы разобраться в ее работе я взял, в качестве примера, следующий документ:
export.xlsx

введите сюда описание изображения

Далее попытался приконектится к нему в своем проекте:

введите сюда описание изображения

// main.rs

fn main() {
    use calamine::{Reader, Xlsx, open_workbook};

    let mut excel: Xlsx<_> = open_workbook(std::path::Path::new(env!("CARGO_MANIFEST_DIR"))
        .join("static/export.xlsx")).unwrap();
    if let Some(Ok(r)) = excel.worksheet_range("export") {
        for row in r.rows() {
            println!("row={:?}, row[0]={:?}", row, row[0]);
        }
    }
}

// Cargo.toml

[package]
name = "Parser"
version = "0.1.0"
authors = ["Michael Krivosheev <[email protected]>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
calamine = "0.16.1"



Вопрос:
Что необходимо прописать вместо значения "export"(и какую задачу выполняет этот параметр?)
Какие телодвижения еще необходимо сделать - что бы вытащить(допустим в принте для начала) хотя бы какое то значение из вышеуказанной таблицы?


Ответы (1 шт):

Автор решения: Majestio

Судя по документации на крэйт calamine вместо значения "export" нужно указать имя листа из вашего xlsx-файла. В вашем случае "Товары 1". Как библиотека "проглотит" кириллицу в этом случае - затрудняюсь сказать. Для начала я бы переименовал лист во что-то латинское, просто для теста.

Для того, чтобы что-то вытащить из что-то из таблицы, опять же отсылаю в документацию по используемому крэйту. Там есть очень наглядный пример.

По идее, нужно выбрать диапазон ячеек для чтения, пробежаться по нему итератором, на каждой операции определить заполнена ли ячейка, ну и если заполнена - вывести ее содержимое.

Код писать не буду - разбираться с этим крэйтом лень. Но метку отредактирую, авось на будущее пригодится.

→ Ссылка