Search code examples
pythonxlsxwriterlibxlsxwriter

xlsxwriter expected an indented block


After spending some time to compile libxlsxwriter as a dylib for osx without success, I made the decision to switch to NSTask using the Python module XlsxWriter. But another problem come out: indentation! I want to achieve iteration through an array and put each value in a row and column programmatically. However I am struggling with this example from the docs:

import xlsxwriter. 

# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Expenses01.xlsx')
worksheet = workbook.add_worksheet()

# Some data we want to write to the worksheet.
 expenses = (
['Rent', 1000],
['Gas',   100],
['Food',  300],
['Gym',    50],
)

# Start from the first cell. Rows and columns are zero indexed.
row = 0
col = 0

# Iterate over the data and write it out row by row.
for item, cost in (expenses):
worksheet.write(row, col,     item) #LINE 21 <---
worksheet.write(row, col + 1, cost)
row += 1
# Write a total using a formula.
worksheet.write(row, 0, 'Total')
worksheet.write(row, 1, '=SUM(B1:B4)')

workbook.close()

OUTPUT

File "test.py", line 21
worksheet.write(row, col,     item)
        ^
IndentationError: expected an indented block

Solution

  • XlsxWriter doesn't expect the block to be indented, Python does.

    You will need to indent the code as shown in the original example that the code above was taken from.