Импорт CSV с разрывами строки в Excel 2007

Я пришел к выводу, что app.component.ts - это первое, что отображается в вашем приложении. Вы не можете перейти к нему, очевидно, вы не можете получать параметры.

Первое решение состоит в том, что: Я должен использовать провайдера для хранения ваших пользовательских данных, а затем установить данные вашего бокового меню у провайдера.

Второе решение заключается в следующем: Использовать события, как показано ниже.

Используя события, я решил свою проблему, и мой код события работает нормально.

import { Events } from 'ionic-angular';

// first page (publish an event when a user is created)
constructor(public events: Events) {}
createUser(user) {
  console.log('User created!')
  this.events.publish('user:created', user, Date.now());
}


// second page (listen for the user created event after function is called)
constructor(public events: Events) {
  events.subscribe('user:created', (user, time) => {
    // user and time are the same arguments passed in `events.publish(user, time)`
    console.log('Welcome', user, 'at', time);
  });
}
110
задан Micha Wiedenmann 9 November 2018 в 09:52
поделиться

3 ответа

Я наконец нашел проблему!

Оказывается, мы писали файл с использованием кодировки Unicode, а не ASCII или UTF-8. Изменение кодировки FileStream, похоже, решает проблему.

Спасибо всем за все ваши предложения!

24
ответ дан 24 November 2019 в 03:16
поделиться

Обзор

Спустя почти 10 лет после исходного сообщения, Excel не улучшился в импорте файлов CSV. Однако я нашел, что это намного лучше в импорте HTML-таблиц. Так, можно использовать Python, чтобы преобразовать CSV в HTML и затем импортировать получающийся HTML к Excel.

преимущества этого подхода: (a) это работает надежно, (b) Вы не должны отправлять свои данные сторонней службе (например, листы Google), (c) никакие дополнительные "толстые" установки не требуются (LibreOffice, Числа и т.д.) для большинства пользователей, (d) более высокий уровень, чем влезать в символы CR/LF и маркеры BOM, (e) никакая потребность играть с настройками локали.

Шаги

следующие шаги могут быть выполнены на любой подобной удару оболочке, пока Python 3 установлен. Хотя Python может использоваться для прямого чтения CSV, , csvkit используется, чтобы сделать промежуточное преобразование в JSON. Это позволяет нам избегать необходимости иметь дело с запутанностью CSV в нашем коде Python.

Первый, сохраните следующий сценарий как json2html.py. Сценарий читает файл JSON из stdin и выводит его как HTML-таблицу:

#!/usr/bin/env python3
import sys, json, html

if __name__ == '__main__':
    header_emitted = False
    make_th = lambda s: "<th>%s</th>" % (html.escape(s if s else ""))
    make_td = lambda s: "<td>%s</td>" % (html.escape(s if s else ""))
    make_tr = lambda l, make_cell: "<tr>%s</tr>" % ( "".join([make_cell(v) for v in l]) )
    print("<html><body>\n<table>")
    for line in json.load(sys.stdin):
        lk, lv = zip(*line.items())
        if not header_emitted:
            print(make_tr(lk, make_th))
            header_emitted = True
        print(make_tr(lv, make_td))
    print("</table\n</body></html>")

Затем установите csvkit в виртуальной среде и используйте csvjson для питания входного файла к нашему сценарию. Это - хорошая идея отключить предположение типа ячейки с -I аргумент:

$ virtualenv -p python3 pyenv
$ . ./pyenv/bin/activate
$ pip install csvkit
$ csvjson -I input.csv | python3 json2html.py > output.html

Теперь output.html может быть импортирован в Excel. Разрывы строки в ячейках будут сохранены.

Дополнительно, можно хотеть к очистке виртуальную среду Python:

$ deactivate
$ rm -rf pyenv
0
ответ дан 24 November 2019 в 03:16
поделиться

Если поле содержит начальный пробел, Excel игнорирует двойные кавычки как квалификатор текста. Решение состоит в том, чтобы исключить ведущие пробелы между запятой (разделителем полей) и двойными кавычками. Например:

Сломано:
Имя, Заголовок, Описание
«Джон», «Мистер», «Мое подробное описание»

Рабочий:
Имя, Должность, Описание
«Джон», «Мистер», «Мое подробное описание»

4
ответ дан 24 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: