Tag: openpyxl

在openpyxl模块中,在数据validation中解决公式256字符限制问题

我正在尝试从python的openpyxl模块中准备好的string列表添加数据validation到单元格。 问题是,所有的string一起超过256个字符的限制,所以数据validation不能创build。 有没有人知道这个方法?

从现有的工作簿读取时发出整数

我有一个.xlsx文件,并试图读取一列,并将其转储到列表中。 列中的值都是float和int : COLUMN B 72.3 78.34 80 82.4 83.49 84.34 … 这是我用来做倾销的代码: import openpyxl from openpyxl import load_workbook #Reading the xlsx file in wb=load_workbook(filename='Results.xlsx',use_iterators=True) ws = wb.get_sheet_by_name(name = 'Plot_2') mylist=[] for row in ws.iter_rows('B5:B104'): for cell in row: mylist.append(cell.value) 这些是我返回的价值: In [1]: mylist Out [1]: [72.3, 78.34, 80L, 82.4, 83.49, 84.34, … 我怎样才能确保我的80读取像一个整数,没有添加到它的L ,为什么呢?

Python 3.5使用openpyxl编写numpy

我一直在努力通过Hilpisch的“Python for Finance”,并没有太多的麻烦,直到我写到Excel的章节。 我正在运行Python 3.5并使用OpenPyxl模块 import openpyxl as oxl import numpy as np wb = oxl.Workbook() ws = wb.create_sheet(index = 0, title = 'oxl_sheet') data = np.arange(1, 65).reshape((8, 8)) for c in range(1, data.shape[0]): for r in range(1, data.shape[1]): ws.cell(row=r, column=c, value=data[c, r]) 这将返回: ValueError: Cannot convert 10 to Excel 这是使用numpy的问题吗? 例如,下面的代码返回一个类似的错误。 ws.cell(row=1, column=1, value=data[0,0]) […]

将openpyxl数据传递给pandas

我从excel文件的数据中将“全名”字段拆分为“名字”,“中间名”和“姓氏”字段,我不知道如何在pandas中这样做,所以我转向了openpyxl。得到的variables分裂,因为我想要的。但是, 因为添加列到openpyxl的新领域是不容易的 ,我想我会传递给pandas的值。 我运行代码时生成了我需要的数据框,但是一旦将df发送到ExcelWriter,只有最后一行被添加到Excel文件中。 数据是在正确的地方,但。 代码如下: for cellObj in range(2, sheet.max_row+1): #print cellObj id = sheet['A' + str(cellObj)].value fullname = sheet['B' + str(cellObj)].value.strip() namelist = fullname.split(' ') for i in namelist: firstname = namelist[0] if len(namelist) == 2: lastname = namelist[1] middlename = '' elif len(namelist) == 3: middlename = namelist[1] lastname = namelist[2] elif […]

使用openpyxl使用电子表格的行创build对象列表

我在Excel中有一个表格,如下所示: ID Address Type 1 2 John Avenue family 2 3 John Avenue single woman 3 4 John Avenue single man 4 5 John Avenue mixed couple 5 6 John Avenue youth 6 7 John Avenue family 7 8 John Avenue single woman 我想读取表中的每一行(不包括标题),并将每行转换为“Person”类的实例。 为了做到这一点,我试图把每一行读成一个字典,以“ID”作为关键。 我正在使用“openpyxl”从Excel文件中读取。 一旦我能够将Excel文件中的数据存储到字典中,我计划创build“Person”类的实例 – 尽pipe我不确定这是否是最好的方法。 这是我到目前为止的代码: from openpyxl import load_workbook class […]

什么是openpyxl中的等价函数?

在xlrd和xlwt中追加一个工作表的行我可以这样做: Stuff = [] column_count = sheet.ncols – 1 for i in range (0, column_count): Stuff.append([sheet.cell_value(row, i) for row in range(sheet.nrows)]) 我如何做openpyxl的等价物?

openpyxl:工作表不存在(与字符集有关)

我用openpyxl加载工作表,并遇到get_sheet_by_name引发的问题Worksheet does not exist 。 #!/usr/bin/env python # -*- coding: utf-8 -*- from openpyxl import load_workbook file_workbook = 'JCR2015影响因子(所有期刊从高到低sorting)+中科院分区.xlsx' sheet_name = '2015年JCR' wb = load_workbook(file_workbook, read_only=True) print(wb.get_sheet_names()) # [u'2015\u5e74JCR'] ws = wb.get_sheet_by_name(sheet_name) # raise the error: KeyError: 'Worksheet 2015\xe5\xb9\xb4JCR does not exist.' '2015年JCR' , '2015年JCR' , '2015年JCR' u'2015\u5e74JCR'和'2015\xe5\xb9\xb4JCR'什么不同? 我如何解决它?

如果条件公式与引用失败,则为openpyxl

使用python 2.7和openpyxl,我将IF公式插入到引用其他工作表中字段的excel工作表中。 而其他公式的工作(CONTIF,COUTN,SUM等),我没有find这个“简单”如果公式不起作用的原因。 只有IF是这个问题 这是我的代码 for i in range(0,len(sortedWorkers)): for a, rr in enumerate(dates): row_nb = i + 3 coll = 3 + a clmn_letter = get_column_letter(coll + 3) # =IF(Worked!I$2=7;Worked!I3;"") valFormula = '=IF(Worked!%s$2=7;Worked!%s%s;"")' %(clmn_letter,clmn_letter, str(row_nb)) _cl = ws12.cell(column= coll, row= row_nb, value=valFormula) 在评论中你可以select公式。 格式是正确的。 如果我手动将其插入到Excel中,它也可以工作。 另外字段坐标和一切匹配。 有什么build议么? 谢谢

使用openpyxl旋转excel图表的轴

那里我试图使用openpyxl来处理Excel数据。画出来,并导出它们是好的。但是,x_axis是不够的,我想旋转,但没有find解决scheme在文档中。 这里是使用XlsxWriter 解决scheme的解决scheme 。 我的代码是这样的: from openpyxl import load_workbook from openpyxl.chart import ( ScatterChart, LineChart, Reference, Series, shapes, text, axis) wb = load_workbook('text.xlsx') ws = wb.active c5 = ScatterChart() x = Reference(ws, min_col=1, min_row=2, max_row=ws.max_row) for i in range(3,5): values = Reference(ws, min_col=i, min_row=1, max_row=ws.max_row) series = Series(values, xvalues=x, title_from_data=True) # series.marker.symbol = 'triangle' c5.series.append(series) […]

“'int'对象不可调用”使用openpyxl

获取错误'int' object is not callable在尝试执行代码时'int' object is not callable : sheetNames = wb.get_sheet_names() activeSheet = wb.get_sheet_by_name(sheet) min = activeSheet.min_row() + 1 max = activeSheet.max_row() 我不知道是什么原因造成的,考虑到min声明(加法操作)和max函数(没有任何操作)都在工作,两者都给出同样的错误。 该文件说.min_row()和.max_row()都是整数,所以我不知道为什么我不能将它们保存到其他未声明的variables。 有什么build议?