Как динамически писать в Excel с помощью XLSX Writer - PullRequest
0 голосов
/ 12 декабря 2018

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

  Shankar 100  100  200
  Kumar    50   80  130
  Shiva    20   20   40 
  Sekar    20   20   40

Пожалуйста, помогите мне написать код, используя xlsxwriter в python

Ответы [ 3 ]

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

Попробуйте это:

import xlsxwriter

data  = (('Shankar','100','100','200'),('Kumar','50','80','130'),('Shiva','20','20','40'),('Sekar','20','20','40'))

# Open the workbook and add a worksheet
workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()

# iterate through your tuple of tuples, and write out each cell 
for row, x in enumerate(data):
    for col, y in enumerate(x):
        worksheet.write(row, col, y)

# Make sure to close the workbook 
workbook.close()

Что дает следующее output.xlsx :

enter image description here

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

Сделайте что-то вроде этого:

import xlsxwriter
workbook = xlsxwriter.Workbook('my_excel.xlsx')
worksheet = workbook.add_worksheet()

data = (('Shankar','100','100','200'),('Kumar','50','80','130'),('Shiva','20','20','40'),('Sekar','20','20','40'))

### Iterate over the data and write it out row by row.
for row, line in enumerate(data):
    for col, cell in enumerate(line):
        worksheet.write(row, col, cell)

workbook.close()
0 голосов
/ 12 декабря 2018

Вы можете сделать это с помощью pandas:

import pandas as pd

data  = (
    ('Shankar', '100', '100', '200'),
    ('Kumar', '50', '80', '130'),
    ('Shiva', '20', '20', '40'),
    ('Sekar', '20', '20', '40')
)

# Create a dataframe with the data of interest
df = pd.DataFrame(data=list(data), columns=['Name', 'Col1', 'Col2', 'Col3'])

# Export the dataframe to a XLSX file, in Worksheet `sheet1`,
# without the index nor the column names of the dataframe
df.to_excel('data.xlsx', sheet_name='sheet1', index=False, header=False)

Это выводит следующее значение для data.xlsx :

enter image description here

...