Как скопировать содержимое csv и вставить в лист Excel?

Я использую библиотеку python v3 xlwings для взаимодействия с MS Excel. У меня есть файл csv ToCopy.csv и вы хотите скопировать все содержимое этого файла cvs в файл Excel.

 import xlwings as xw Book_name = 'C:/Temp/ExcelBook.xlsm' sheet_name = 'SheetName' #paste into this sheet wb = xw.Book(Book_name) sht = wb.sheets[sheet_name] 

Я посмотрел документацию по xlwings, но все равно не понимаю, как начать работу. Может кто-нибудь дать мне начало?

Я открыт для использования других методов, которые не основаны на библиотеке xlwings. Однако мой файл Excel защищен паролем, и я знаю, что xlwings может обрабатывать файлы Excel, защищенные паролем. Я не уверен в других методах.

Так из документации http://docs.xlwings.org/en/stable/quickstart.html

Чтение / запись значений в / из диапазонов так же просто:

 >>> sht.range('A1').value = 'Foo 1' >>> sht.range('A1').value 

'Foo 1' Доступны многие удобные функции, например, расширение диапазона:

 >>> sht.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] >>> sht.range('A1').expand().value [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] 

В первом примере значение записывается в местоположение A1. Во втором значении записываются A1, B1, C1 и A2, B2, C2

Поэтому вы, вероятно, захотите сделать что-то вроде

 for row,line in enumerate(inputcsv): myrange = 'A'+row mydata = line.split(',') sht.range(myrange).value = mydata 

Другие варианты:

  1. Excel импортирует csv напрямую – импорт вручную
  2. VBA Macro в excel для импорта файла, запуск через xlwing

Поскольку вы пишете, что вы пробовали xlsxwriter, это может не сработать, но вы считаете openpyxl?

 from openpyxl import load_workbook from openpyxl.utils.dataframe import dataframe_to_rows import pandas as pd df = pd.read_csv('ToCopy.csv', header=None, index_col=None) wb = load_workbook(filename='C:/Temp/ExcelBook.xlsm') ws = wb.create_sheet() ws.title = 'ToCopy' for r in dataframe_to_rows(df, index=False, header=False): ws.append(r) wb.save('C:/Temp/ExcelBook.xlsm') 

Попробуйте открыть csv и сохранить как xlsx напрямую:

 import xlwings as xw wb = xw.Book('C:\source.csv') # Connect to an existing file # wb = xw.Book(r'C:\Users\hhsg\Desktop\target.xlsx') # On Windows: use raw strings to escape backslashes wb.save('C:\target.xlsx') # wb.save(r'C:\target.xlsx') # On Windows: use raw strings to escape backslashes 
  • Ошибка xlwings с использованием вызывающего абонента из excel
  • Xlwings UDF при использовании замороженного файла Python
  • Формула copy-paste Python xlwings с относительными ссылками на ячейки
  • неверный расчет xlwings при передаче значения в UDF
  • Симулятор диаграммы xlwings - Невозможно дублировать Макро-лист с помощью симуляционной диаграммы
  • создать приложение в excel с помощью python для пользователя без python
  • Эффективная функциональность времени для добавления границы в данные Excel с использованием python
  • Я не могу закрыть Excel 2016 после выполнения функции xlwings
  • xlwings уничтожает мой EXCEL addin
  • Сохранять глобальные переменные python между вызовами функций в excel с помощью xlwings
  • Как сортировать столбцы в файле Excel с помощью xlwings?
  • Давайте будем гением компьютера.