Tag: openpyxl

如何在openpyxl for循环中读取excel文件?

这对我来说似乎很棘手。 比方说,我已经嵌套在一个目录树中,有一些非空列的excel文件。 我想用openpyxl得到F列中所有值的总和: file1.xlsx ABCDEF 5 7 11 17 20 29 34 我认为这将是如下,但它是错误的: import os from openpyxl import load_workbook directoryPath=r'C:\Users\MyName\Desktop\MyFolder' #The main folder os.chdir(directoryPath) folder_list=os.listdir(directoryPath) for folders, sub_folders, file in os.walk(directoryPath): #Traversing the sub folders for name in file: if name.endswith(".xlsx"): filename = os.path.join(folders, name) wb=load_workbook(filename, data_only=True) ws=wb.active cell_range = ws['F1':'F7'] #Selecting the slice of […]

每次循环运行增加一次

每次循环遍历所有表单时,如何让单元格数量增加一个? 我得到它循环通过不同的工作表本身,但我不知道如何将+1添加到单元格值。 for sheet in sheetlist: wsX = wb.get_sheet_by_name('{}'.format(sheet)) ws2['D4'] = wsX['P6'].value 我试图让['D4']变成D5,D6,D7 ..等自动升级到25。

如何读取范围('A5:B10')并使用openpyxl将这些值放入数据框中

能够以类似于excel的方式定义范围,即“A5:B10”对于我所需要的非常重要,因此将整个表格读取到数据框并不是很有用。 所以我需要做的是从Excel工作表中的多个范围读取多个不同的数据框。 valuerange1 = ['a5:b10'] valuerange2 = ['z10:z20'] df = pd.DataFrame(values from valuerange) df = pd.DataFrame(values from valuerange1) 要么 df = pd.DataFrame(values from ['A5:B10']) 我已经搜查,但无论我做了一个非常糟糕的search工作,或者其他人已经得到解决这个问题,但我真的不能。 谢谢。

我怎样才能在Excel中填充颜色特定的单元格?

我有这个代码,它工作正常。 但问题是,我必须做很多if-elif的事情。 我需要更高雅的方式 wb = openpyxl.load_workbook('/New.xlsx') ws = wb.active ws = wb.get_sheet_by_name(u'И') redFill = PatternFill(start_color='FFFF00',end_color='FFFF00',fill_type='solid')#желтый redFill2 = PatternFill(start_color='FF4500',end_color='FF4500',fill_type='solid')#красный redFill3 = PatternFill(start_color='FFA500',end_color='FFA500',fill_type='solid')#оранжевый redFill4 = PatternFill(start_color='228B22',end_color='228B22',fill_type='solid')#зеленый if ws.cell(row=2, column=4).value=='50,00%': ws['E2'].fill = redFill2 elif ws.cell(row=2, column=4).value=='75,00%': ws['E2'].fill = redFill3 elif ws.cell(row=2, column=4).value=='100,00%': ws['E2'].fill = redFill4 wb.save('/New.xlsx') 我想创build这样的东西: def ws_f(row,column): if ws.cell(row=row, column=column).value=='50,0%': return ws.cell.fill = redFill2 elif ws.cell(row=row, […]

为什么我的openpyxl WorkBook.active(file_name)给了我一个TypeError:Object是不可调用的?

我正在尝试第一次使用openpyxl。 我有一个Excel文件,有两列数据。 列“A”有ID号码,而“C”列有值。 我只是试图提取它们,作为一个普通的键/值对象。 这些是我想要实现的伪步骤 按位置查找文件,并创build工作簿对象 定义一个WorkSheet对象。 在我的情况下,这是默认的第一页 遍历行,只要列“A”中有关键值 将“A”和“C”中的键和值添加到对象中。 问题是,我不能通过第2步,创build一个工作表。 行ws = wb.active()看起来像是获取默认WorkSheet的完全标准化的方式。 我看到它在很多例子中都被使用了,在写这个的时候,在使用这个命令的时候有93个问题。 但在我的情况下,它会抛出一个错误: File "C:\myworkspace\Myclass.py", line 18, in <module> ws = wb.active() TypeError: 'ReadOnlyWorksheet' object is not callable 我对Python很新,但是之前遇到类似的错误。 我知道,例如,如果我导入一个python模块的名称,而不是相关的类名引发它。 究竟发生了什么? 为什么这个看起来很标准的检索工作表对象的方法,试图实例化一个模块而不是一个类? 我用错了吗? file_url = 'C:/myfilepath.xlsx' key_column_index = 1 value_column_index = 3 row_start = 2 request_map = {} wb = load_workbook(filename = […]

是否有更pythonic的方式来跳过xlsx行?

我想要做的事:跳过A1:A6,跳过B1:B6,将剩下的保存到csv。 等价地,我想将A7: B+ws.max_row保存为csv。 我的方法是: for sheet_name in wb.get_sheet_names(): sheet = wb.get_sheet_by_name(sheet_name) col1 = [] cnt = 1 for i in sheet['A']: if cnt <= 6: cnt += 1 continue col1.append(i.value) col2 = [] cnt = 1 for i in sheet['B']: if cnt <= 6: cnt += 1 continue col2.append(i.value) data = zip(col1, col2) with open(str(sheet_name)+'.csv','wb') […]

如何在python中创buildopenpyxl中的列表

import openpyxl infoFilePath='test.xlsx' workbook = openpyxl.load_workbook(infoFilePath,read_only=True) first_sheet = workbook.get_sheet_names()[0] worksheet = workbook.get_sheet_by_name(first_sheet) workbook.active def iter_rows(ws): for row in ws.iter_rows(): yield [cell.value for cell in row] rows = list(iter_rows(worksheet)) print(rows) 正如你所看到的,我已经成功地将打印“行”列为一个列表。 但是如何打印“列”作为列表? 当我使用ws.iter_cols()时,发生错误。

TypeError:“生成器”对象不可自订

import openpyxl wb = openpyxl.load_workbook('example.xlsx') sheet = wb.active sheet.columns[1] Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> sheet.columns[1] TypeError: 'generator' object is not subscriptable 我是Python的初学者,这是我第一次发布我的问题。 我坚持与TypeError上面说'发电机'的对象是不可下标的。 我想我确切地input了写在网站上的代码。 该网站的url是https://automatetheboringstuff.com/chapter12/ 请帮我处理这个错误。

如何使用python连接三个excels文件xlsx?

你好,我想连接三个Excel文件xlsx使用Python。 我曾尝试使用openpyxl,但我不知道哪个函数可以帮助我将三个工作表添加到一个。 你有什么想法如何做到这一点? 非常感谢

openpyxl遍历column => TypeError的单元格:'generator'对象不是可以下载的

我想遍历列的所有值,以安全他们作为一个字典中的关键。 据我所知,一切都好,但python不同意。 所以我的问题是:“我做错了什么?” >>> wb = xl.load_workbook('/home/x/repos/network/input/y.xlsx') >>> sheet = wb.active >>> for cell in sheet.columns[0]: … print(cell.value) … Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'generator' object is not subscriptable 我必须要失去一些东西,但经过几个小时的努力之后,我必须把它扔进沙袋里,然后在沙发里打电话;) 在此先感谢所有的帮助! ================================================== ================= @Charlie Clark:谢谢你花时间回答。 事情是,我需要第一列作为字典中的键,然后,我需要做的 for cell in sheet.columns[1:]: 所以,虽然它可以解决我的问题,但是在我的代码中,它会在几行后回到我的头上。 我将在我的代码中使用您的build议来提取密钥。 我主要的问题是: 为什么它不工作,我相信我之前使用这个代码片段,这也是如何,当谷歌search,人们正在build议这样做。 ================================================== ======================== >>> for […]