Tag: openpyxl

openpyxl – 读取数据validation – 列表

我有一个Excel表,数据validation属性列表。 我需要创build一个column_name和关联的下拉列表值的字典。 例如:{A:[a1,a2,a3],B:[b1,b2],C:[c1,c2,c3,c4]}。 有多个如何在Excel中embedded数据validation列表的例子,但是我怎么读呢? 我试过简单的代码: from openpyxl import load_workbook excel = load_workbook('test.xlsx') sheet = excel.get_sheet_by_name('RequiredFormat') for row in sheet.iter_rows(): for cell in row: print(cell.value) input("Proceed ?") 我检查了可用的单元格的选项。 但没有什么说数据validation或列表。 有没有办法?

使用OpenPyXl检查空单元格

我倒了很多版本的这个相同的问题,但根本找不到一个工作的解决scheme循环通过一组单元格和检查空的。 这是我的代码: wb = openpyxl.Workbook(write_only=False) sheet = wb.get_sheet_by_name('Sheet') for i in range(1, 20): if sheet.cell(row=i, column=1).value == None or 'None': print('Space' + str(i)) sheet.cell(row=i, column=1) = i else: pass wb.save('filename.xlsx') 但由于某种原因,它写入空单元格并覆盖写入其中的值的单元格。 我注释掉循环,我发现如果我运行代码,它会将所有手动写入电子表格的内容都擦除。 也许这是问题的一部分? 另外我使用LibreOffice如果有所作为

我的Python代码有逻辑错误,但不知道如何解决

我正在使用Python 3.5与openpyxl模块。 我有一个小的Excel电子表格,它有5列,每个有5个特定types的电影。 我的Python程序旨在基于用户input,显示某种types的电影,向电子表格添加电影,删除电影或退出。 现在,我已经得到它在用户select的类别中显示电影,但是,我无法正确地删除它。 它将显示stream派中的电影列表,不pipe用户input什么号码,都会自动select选项#5。 我不知道如何让它正确匹配。 更糟糕的是,当给出删除选项时(通过input“Y”或“N”),有时仍然会删除。 而且,即使Excel工作簿应该“保存” – 一旦你重新启动程序,被删除的文件再次出现。 我一直在看这个代码几个小时,我不知道要改变什么。 你们可以请看看,给我一些build议吗? 我知道您无法访问电子表格,但这里没有电子表格布局的图片: 这里是从一开始的代码: import openpyxl wb = openpyxl.load_workbook("Movies.xlsx") sheet = wb.active sheetname = wb.get_sheet_by_name("Movies") thrillers = list(sheet['A2' : 'A6']) comedies = list(sheet['B2' : 'B6']) action = list(sheet['C2' : 'C6']) dramas = list(sheet['D2' : 'D6']) family = list(sheet['E2' : 'E6']) def greeting(): print("\tWELCOME TO […]

Python:在Excel文件中查找特定的单词或值

所以我给了两个excel文件,就像这个例子 movieId title genres 1 Toy Story (1995) Adventure|Animation|Children|Comedy|Fantasy 2 Jumanji (1995) Adventure|Children|Fantasy 3 Grumpier Old Men (1995) Comedy|Romance 4 Waiting to Exhale (1995) Comedy|Drama|Romance 5 Father of the Bride Part II (1995) Comedy 我试图做的事情是当某人键入标题代码将findmovieID和电影名称。 唯一的问题是我不知道从哪里开始我是一个noob编码器,我一直在尽我所能学习,但我不知道,如果你们可以帮助我,并指出我在正确的方向,这将是惊人的。 谢谢

用烧瓶返回一个创build好的excel文件

我正在使用openpyxl创build一个excel文件,我希望将其作为文件下载返回(因此不在本地保存)。 我可以创build好的Excel文件并将其保存到磁盘。 但是,我不能得到这个文件下载。 尝试1: import flask_excel as excel … create_excel_sheet(data) # internally save the sheet with name sheet.xlsx output = excel.make_response() output.headers["Content-Disposition"] = "attachment; filename=" + \ 'sheet.xlsx' output.headers["Content-type"] = "application/vnd.openxmlformats-\ officedocument.spreadsheetml.sheet" return output 这将返回一个名为sheet.xlsx的空文本文件 尝试2:wb = create_excel_sheet(data)#返回openpyxl工作簿 output = excel.make_response(wb) output.headers["Content-Disposition"] = "attachment; filename=" + \ 'sheet.xlsx' output.headers["Content-type"] = "application/vnd.openxmlformats-\ officedocument.spreadsheetml.sheet" return output 我不想使用pyexcel作为数据,因为我需要使用openpyxl来创build一个奇特的excel表单。 […]

在Openpyxl中使用嵌套字典创build一个列表

我想遍历Excel工作表中的所有行,并将每行(从第2行开始)的值存储在1个大表中的各个字典中。 从A列到D列的Excel中有一个简单的项目列表: Fruit: Quantity: Color: Cost Apple 5 Red 0.6 Banana 6 Yellow 0.4 Orange 4 Orange 0.3 Kiwi 2 Green 0.1 我想要第一个结果看起来像: [{'Fruit': 'Apple', 'Quantity': 5, 'Color': 'Red', 'Cost': 0.6}] 以下是我的代码现在的样子: import openpyxl wb = openpyxl.load_workbook('fruit.xlsx') sheet = wb.get_sheet_by_name('Sheet1') for row in range(2, sheet.max_row + 1): fruit = sheet['A' + str(row)].value quantity = sheet['B' […]

Python从Excel文件中读取数据

我试图通过循环的Excel文件的行,并写入数据在Web应用程序。 我使用的是一个混合的openpyxl来获取excel数据和pyautogui单击并键入Web应用程序。 但是,当我到达input数据的时候: c=Sheet.cell(row=i,column=7).value pyautogui.typewrite(c) 我得到一个错误“的消息中的c:TypeError:'int'对象是不可迭代的”。 有什么办法可以解决这个问题吗? 这听起来像pyautogui只能input精确的string,而不是从variables读取? import openpyxl import pyautogui import time wb = openpyxl.load_workbook('H:\\Python Transfer.xlsx') type (wb) wb.get_sheet_names() Sheet = wb.get_sheet_by_name('Sheet1') lastRow = Sheet.max_row for i in range(2,lastRow + 1): #print(Sheet.cell(row=i,column=7).value) pyautogui.click(1356,134) time.sleep(5) c=Sheet.cell(row=i,column=7).value pyautogui.typewrite(c) time.sleep(2) pyautogui.click(1528,135) 谢谢!!

使用Python 2.7和openpyxl删除Excel中的单元格

我正尝试使用openpyxl从Excel电子表格中删除单元格。 这似乎是一个非常基本的命令,但我环顾四周,无法find如何做到这一点。 我可以将它们的值设置为None,但它们仍然以空单元格的forms存在。 worksheet.garbage_collect()会抛出一个错误,指出它已被弃用。 我正在使用最新版本的openpyxl。 有没有什么办法只是删除一个空的单元格(就像Excel中的那样),还是我不得不手动移动所有的单元格? 谢谢。

TypeError:值必须是列表,元组,范围或生成器或字典

我已经创build了一个脚本来通过正则expression式提取XML值,然后附加到一个Excel工作表。 然后我添加了一个元素树方法来获取标签名称的值。 我也想把这个值附加到同一个XLSX表单上。 我得到这个错误: Traceback (most recent call last): File "C:\Path\To\Desktop\excels.py", line 23, in <module> ws.append(agreement) File "C:\Python34\lib\site-packages\openpyxl\worksheet\worksheet.py", line 763, in append self._invalid_row(iterable) File "C:\Python34\lib\site-packages\openpyxl\worksheet\worksheet.py", line 768, in _invalid_row type(iterable)) TypeError: Value must be a list, tuple, range or generator, or a dict. Supplied value is <class 'str'> 这是我find和正在testing的示例elementTree代码。 from openpyxl import Workbook import xml.etree.ElementTree […]

Openpyxl公式冲突

我正在写这个代码来根据行将一个公式分配给一个特定的单元格。 但问题是,当我试图打开Excel文件,它会引发一个错误,并删除我写的公式。 for z in range(4, 54): wss.cell(coordinate="J"+str(z), value="=I"+str(z)+"*C"+str(z)) formula = "=SI(ESBLANCO(H"+str(z)+");0;BUSCARV(H"+str(z)+ ";Lista_precios!A3:B"+str(self.ultimaFila+1)+";2;FALSO))" wss.cell(coordinate="I"+str(z), value=formula) 我正在用西class牙文编写Excel公式,因为我的Excel是用西class牙文编写的。 第一个公式就是= I4 * C4工作正常。 我已经打印了variables公式,它与Excel一致,但与Openpyxl有冲突