Копировать диапазон из файла Microsoft Excel CSV - PullRequest
0 голосов
/ 14 января 2020

Есть ли способ скопировать диапазон ячеек из Microsoft Excel CSV в другие ячейки в том же файле, как в обычном файле .xlsx, или в новый файл .xlsx?

Альтернативой этому является просто сохраните этот файл в формате .xlsx, но у меня проблемы с этим методом также из-за кодировки UTF-16 LE.

1 Ответ

0 голосов
/ 14 января 2020

Нет файлов Excel CSV. CSV - это простой текстовый файл с минимальным форматом c. Файлы xlsx - это ZIP-пакеты, содержащие XML файлы. Я подозреваю, что вы действительно спрашиваете, как прочитать текстовый файл CSV, сохраненный в одной кодировке, и преобразовать его в XLSX.

Ответы на этот вопрос показывают, как это сделать:

  • Загрузите файл CSV, используя библиотеку csv , а затем
  • Запишите его в XLSX, используя openpyxl
import csv
import openpyxl

wb = openpyxl.Workbook()
ws = wb.active

with open('file.csv') as f:
    reader = csv.reader(f)
    for row in reader:
        ws.append(row)

wb.save('file.xlsx')

Файл CSV читается с open. Поскольку csv docs предупреждают:

Поскольку open () используется для открытия файла CSV для чтения, файл по умолчанию будет декодирован в Unicode с использованием системной кодировки по умолчанию (см. Locale.getpreferredencoding ()). Чтобы декодировать файл с использованием другой кодировки, используйте аргумент кодирования open

. Возможно, вам придется использовать кодировки utf-8, utf-8-sig или utf-16-le:

with open('file.csv', encoding='utf-8') as f:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...