Search code examples
pythonxlsxxlsxwriter

Can't write an xslx file, it says there is an attributeerror


[Hi, I wrote some codes like below, but I have a problem with final part. I already installed xlsxwrtier several times with "pip install xlsxwriter", so I have the recent version. But still I'm struggling with "Workbook" thing. How can I fix this? Could any give me an advice please?]

 import xlrd
 import xlsxwriter

 def writeToExcel(wantToSave,name):
     numberOfRows = len(wantToSave)
     workbook = xlsxwriter.WorkBook(name +' .xlsx')
     worksheet = workbook.add_worksheet()
     for i in range(numberOfRows):
         worksheet.write(i,0, str(wantToSave[i]))
     workbook.close()

 def excelReader(datafile, sheet_num):
     workbook = xlrd.open_workbook(datafile)
     sheet = workbook.sheet_by_index(sheet_num)
     data = [[sheet.cell_value(r,col) for col in range(sheet.ncols)] for r in range(sheet.nrows)]
     return data

data = excelReader("list1.xlsx", 0)
data.remove(data[0])
data

sentences = []
for i in range(len(data)):
  context_item = '[["'
  list_num = 'list '+str(int(data[i][0]))
  Item_No = str(int(data[i][1]))


  context_item += list_num+'", '+Item_No+'],'+' "DashedSentence", {s:["'
  sentence = data[i][5]
   if sentence[-1] == " ":
       sentence = sentence[:-1]
  context_item += sentence+'"]},'


  target_item = ' "DashedSentence", {s:["'
  sentence = data[i][6]

  if sentence[-1] == " ":
      sentence = sentence[:-1]
  target_item += sentence+'"]}, '+'"Question", {q:"'
  sentence = data[i][7]
  if sentence[-1] == " ":
    sentence = sentence[:-1]

  target_item += sentence+'"}],' 

  sentences.append(context_item+target_item)

  writeToExcel(sentences, 'ibex_list1')

  AttributeError                            Traceback (most recent call last)
 <ipython-input-15-3fda3a6a33ea> in <module>()
 ----> 1 writeToExcel(sentences, 'ibex_list1')

 <ipython-input-7-0d092c570855> in writeToExcel(wantToSave, name)
  1 def writeToExcel(wantToSave,name):
  2     numberOfRows = len(wantToSave)
  ----> 3     workbook = xlsxwriter.WorkBook(name +' .xlsx')
  4     worksheet = workbook.add_worksheet()
  5     for i in range(numberOfRows):

  AttributeError: module 'xlsxwriter' has no attribute 'WorkBook'

Solution

  • AttributeError: module 'xlsxwriter' has no attribute 'WorkBook'

    The constructor name is Workbook not WorkBook.