Tag: openpyxl

使用Python 3.5parsing所有Excel公式的最快方法

作为一个更大的testing集的一部分,我需要提取上传的Excel工作簿中的所有公式。 然后我需要将每个公式parsing到各自的范围引用中,并将这些引用转储到一个简单的数据库中。 例如,如果单元格A1具有公式= B1 + C1,则我的数据库将loggingB1和C1作为引用的单元格。 目前我使用openpyxl一次读取一个公式,然后parsing它们。 这对于较小的工作簿来说很好,但是对于大型工作簿来说,它可能非常慢。 这感觉完全没有效率。 pandas或类似的模块可以更快地提取Excel公式吗? 或者,也许有更好的方法来提取所有的工作簿公式,而不是一次只读一个单元格? 任何意见将不胜感激。

使用Python将SPSS数据有效写入Excel

我正在尝试使用Python将数据从打开的SPSS数据集写入Excel文件。 下面的程序工作正常,但是对于有140万个数据点(2500个,700个variables)的文件大约需要35秒。 现在,我正在遍历每个案例(作为一个元组),然后将元组的每个元素分配到一个单元格中。 openpyxl是Excel模块的select(因为我以前没有使用任何其他)。 我将使用Python程序来处理更大的数据集,所以我想知道是否有更高效的逻辑。 BEGIN PROGRAM. import spssdata import spss,spssaux, sys import openpyxl from openpyxl import Workbook import gc #initialise timer time_start = time.time() #Create the workbook to save the codebook wb=openpyxl.Workbook() ws1=wb.create_sheet() spss.StartDataStep() MyFile = spss.Dataset() varDict = spssaux.VariableDict() MyCases=MyFile.cases MyVars=MyFile.varlist for varnum, varname in enumerate(MyFile.varlist): ws1.cell(row=1,column=varnum+1).value=varname.name ws2.cell(row=1,column=varnum+1).value=varname.name for eachcase in range (len(MyCases)): […]

Excel不会使用openpyxl识别date

我有一段代码将unixdate转换为标准的美国date格式。 它在Excel中正确显示,但是Excel不会将其识别为date。 if str(startdate).isdigit(): startdate = int(startdate) date = datetime.datetime.fromtimestamp(int(startdate)).strftime('%m/%d/%Y') ws4.cell(row=cell.row,column=2).value = date ws4.cell(row=cell.row,column=2).number_format = 'MM DD YYYY' 任何想法如何让excel看到这是一个date而不是文本?

需要通过迭代excel文件来创build许多python对象

所以我创build了一个类… class Dept_member: quarterly_budget = 0 outside_services = 0 regular_count = 0 contractor_count = 0 gds_function = '' dept_name = '' def __init__(self, quarterly_budget, outside_services, dept_name): self.quarterly_budget = quarterly_budget self.outside_services = outside_services self.dept_name = dept_name def regular_cost(self): print "%s" % str((self.quarterly_budget – self.outside_services) / self.regular_count) def contractor_cost(self): print "%s" % str(self.outside_services / self.contractor_count) 现在我想使用我收集的variables,同时遍历一个excel文件,使用上面详述的类为每一行创build对象。 for […]

复制工作表 – Openpyxl:types对象'工作簿'没有属性'copy_worksheet'

我正在尝试使用openpyxl创build一个工作表的副本。 经过研究,我发现这个论坛: 复制整个工作表与openpyxl 以下是copy_worksheet的文档: http ://openpyxl.readthedocs.io/en/latest/tutorial.html?highlight=copy_worksheet#manipulating-a-workbook-in-memory 我试着使用显示的代码,并创build了这个错误: Atrribute Error: type object 'Workbook' has no attribute 'copy_worksheet' 这是我使用的代码: wb = load_workbook(input.xlsx) wb.create_sheet(new_sheet) source = wb.get_sheet_by_name(original_sheet) target = wb.copy_worksheet(new_sheet) wb.save(input.xlsx) 我需要改变什么才能使其工作?

在python列表中删除无

Q1。 我想要得到的输出为: [Randy, Shaw] 输出看起来像 ['Randy', 'None', 'None', 'Shaw', 'None', 'None'] 但它并没有消除“无”的价值。 这是我的代码 from openpyxl import load_workbook workbook = load_workbook('C:/Users/Desktop/test.xlsx') print(workbook.get_sheet_names()) sheet=workbook.get_sheet_by_name('marks') iterheaders = iter(sheet[1]) headers = [str(cell.value) for cell in iterheaders if cell is not None and cell != ''] Keyword_list = list(filter(None, headers)) 我什至尝试了以下,但它也没有工作: Keyword_list = [i for i in headers if (None) […]

使用openpyxl从Excel中获取列的值

我打算在这里使用最后一块代码中的代码来完成这个工作。 不过,我for cell in ws.iter_rows(range_string=range_expr):行中得到一个错误for cell in ws.iter_rows(range_string=range_expr):说“工作表对象没有iter_rows属性”。 任何想法我在这里做错了吗?

编写指定行号和列号的Excel文件 – openpyxl

我有一个用XLWT库编写的代码,现在我切换到了openpyxl因为它允许具有比XLWT更多的行限制的XLSX文件允许 我通过在XLWT指定行号和列号来编写单元格 worksheet.write(1, 2, "City") 现在我想知道如何在openpyxl做到这openpyxl ? 我努力了 worksheet.cell(1, 1).value = "test" 但是我得到一个错误 AttributeError: 'int' object has no attribute 'replace'

Python在给定列中查找最高行

我在stackoverflow很新,最近学到了一些基本的Python。 这是我第一次使用openpyxl。 在我使用xlrd和xlsxwriter之前,我设法做了一些有用的程序。 但是现在我需要一个.xlsx的读写器。 有一个文件,我需要阅读和编辑已经存储在代码中的数据。 假设.xlsx有五列数据:A,B,C,D,E。在列A中,我有超过1000行的数据。 在D列上,我有150行数据。 基本上,我想让程序find给定列上的数据的最后一行(如D)。 然后,将存储的variablesdata写入列D中的下一个可用行(最后一行+1)。 问题是我不能使用ws.get_highest_row()因为它返回列A上的行1000 基本上,到目前为止,这是我得到的一切: data = 'xxx' from openpyxl import load_workbook wb = load_workbook('book.xlsx', use_iterators=True) ws = wb.get_sheet_by_name('Sheet1') last_row = ws.get_highest_row() 显然这根本不起作用。 last_row返回1000。

使用openpyxl将数据写入Excel表单不起作用

使用openpyxl ,我试图从Excel-Workbook中读取数据,并将数据写入到同一个Excel-Workbook中。 从Excel-Workbook获取数据工作正常,但将数据写入Excel-Workbook不起作用。 用下面的代码,我得到Sheet1单元格A1的值并打印出来。 然后我尝试将一些值放入单元格A2和A3 。 这不起作用。 from openpyxl import Workbook from openpyxl import load_workbook wb = load_workbook("testexcel.xlsm") ws1 = wb.get_sheet_by_name("Sheet1") #This works: print ws1.cell(row=1, column=1).value #This doesn't work: ws1['A2'] = "SomeValue1" #This doesn't work either: ws1.cell(row=3, column=1).value = "SomeValue2" 我相信代码是正确的…这里出了什么问题?