Tag: openpyxl

在Python中写入现有的受保护的.xsml文件

我正在尝试使用Openpyxl写入一个现有的.xsml工作簿,但它会生成一个工作簿,Excel无法用macros打开仍然完好无损。 这个工作簿也受保护,所以我相信它是encryption的。 我已经尝试在openpyxl的load_workbook中设置keep_vba ​​= true。 如果openpyxl或其他软件包没有这个function,有什么办法可以解决吗?

openpyxl问题:autofilter导致名称中带圆括号的表上的错误

我正在使用openpyxl为一组数据构build一个Excel工作簿。 它包含我正在使用的模型中包含的每组数据的许多不同的工作表。 我的代码的一部分激活每个工作表上的Excel自动filter的数据填充范围的数据。 这是用以下types的代码完成的: ws = book.get_sheet_by_name(sheet_name) ws.autofilter.ref = 'A1:E1' 迄今为止,这一切都很好。 我想要的只是打开列标题上的自动筛选button,没有实际的筛选器操作。 但是,我开始有这个问题。 使用autofilter.ref代码打开自动autofilter.ref会导致一个错误,只要表名称中有括号或大括号。 这个错误是因为当我打开Excel文件时,Excel告诉我它“发现了一些内容的问题”,并提供修复该文件,然后修复该文件使得一切工作正如我预期的那样,但它需要先修复。 维修日志说下面的简短说明: “删除logging:命名范围从/xl/workbook.xml部分(Workbook)” 如果自动filter未打开,或者如果圆括号从工作表名称中删除,则一切工作正常。 为什么会发生这种行为? 是有原因还是只是一个错误? 作为参考,在这种情况下,xlsxwriter的行为通常是正常的,在名称中使用圆括号的工作表正确应用自动筛选,使用以下代码完成: ws = book.get_worksheet_by_name(sheet_name) ws.autofilter(0, 0, 0, 4)

如何从openpyxl中的文件加载分页符

我有一个手动插入分页符的xlsx文件,但是当我加载到openpyxl与 wb = openpyxl.load_workbook(path_to_workbook) 然后打电话给: for sheet in wb.worksheets: print(sheet.page_breaks) 输出是: <openpyxl.worksheet.pagebreak.PageBreak object> Parameters: count=0, manualBreakCount=0, brk=[] 该文件中没有显示分页符 当我在Excel中以分页模式打开xlsx文件时,我会看到它们应该在哪里。 有谁知道我应该怎么做呢?

是否有可能使用openpyxl更改图表中的大小字体?

我在Windows上使用Python版本2.7和openpyxl版本2.4.0。 我需要改变图表中的字体大小(标题/图例)。 可能吗? 我在openpyxl文档和在线search到处都是,但找不到任何东西。 我尝试使用它 from openpyxl import Workbook from openpyxl.chart import Reference, Series, LineChart, BarChart from openpyxl.chart.text import RichText from openpyxl.drawing.text import Paragraph, ParagraphProperties, CharacterProperties, Font chart = BarChart() chart.type = 'col' chart.style = 20 chart.y_axis.title = 'Stress, MPa' data = Reference(ws, min_col=6, min_row=2, max_row=q-1, max_col=7) cats = Reference(ws, min_col=1, min_row=3, max_row=q-1) chart.add_data(data, titles_from_data=True) […]

Openpyxl更改单元格值并复制下面的行

我想find包含value1|value2单元格,以便可以从该单元格中移除|value2 ,并将value1正好在其下方的行复制一份。 例如,如果一行包含: value0 value1 value2 values3|values33 values4然后我会插入一个新的行,下面将是value0 value1 value2 values33 values4和原始行将更改为value0 value1 value2 values3 values4 。 到目前为止,我已经设法find包含|的单元格 但不知道如何进一步发展。 总之,我想知道 :如何在find匹配项后编辑单元格,并在应用的更改下复制下一行,同时对当前行应用更改以使其不再包含该值。 from openpyxl import load_workbook wb = load_workbook('file.xlsx') sheet = wb['Sheet1'] s = '|' for row in sheet.iter_rows(): for cell in row: if s in str(cell.value): print(cell.value) 输出: value1|value2 value3|value4 …

我如何迭代通过多行和列而不是一列?

我的作业只迭代第一行,并将数据显示在一列中。 我试图通过迭代所有的行通过openpyxl删除重复,但它不这样做。 我以前使用Java Apache但是我们需要迁移到Python 。 wb2 = openpyxl.Workbook('E:/Yeep') ws2 = wb2.active wb1 = openpyxl.load_workbook('D:/Yeep.xlsx') ws1 = wb1.active values = [] for row in range(ws1.min_row, ws1.max_row): if ws1.cell(row=row,column=row).value in values: pass else: values.append(ws1.cell(row=row,column=row).value) directory = 'D:/Yeep.xlsx' with open(directory, 'a') as outfile: for value in values: ws2.append([value]) print(value) wb2.save('D:/Duplication Complete.xlsx')

删除包含相邻行的列的重复项,并在上面添加重复项

我想要delete duplicates for Column D并delete rows adjacent重复项所在的delete rows adjacent 。 我想删除差距,所以追加到上述。 我已经在下表中表示了这一点。 数据的行数不断变化。 我们传统上使用VBA,但现在我们正在使用Python,必须改变这部分工作。 什么数据: https : //ibb.co/gwh0Hb 预期/我想实现的是: https : //ibb.co/f08Dnb 以下趋向于删除重复项并将其放在一列中,但旁边的重复项旁边的行不会被删除,并且不会附加列。 下面的代码 – import openpyxl wb1 = openpyxl.load_workbook('C:/Users/Documents/dwa.xlsx') ws1 = wb1.active # keep naming convention consistent wb2 = openpyxl.load_workbook('C:/Users/Documents/123.xlsx') ws2 = wb2.active # keep naming convention consistent values = [] col_e = 6 […]

当从一张纸复制数据,然后粘贴到另一张Excel表时,Openpyxl边框线会断开

我正在尝试使用Openpyxl的是,我从Excel表中复制一些单元格的值,然后打开另一个Excel表格并粘贴这些值。 意外的是我得到了边界线破裂的表格,特别是合并的单元格。 我想听听你的意见。 另外,有没有更好的方式来循环通过单元格? 目前只有三个单元,但如果超过100个单元呢……非常感谢。 from openpyxl import load_workbook import os from os.path import exists target_file = input('ex)201711 ') wb = load_workbook(target_file + '.xlsm', data_only=True) sheet = wb['summary'] num_people = len(sheet['A:A']) for i in range(1, num_people): val_1 = sheet.cell(row=i + 1, column=1).value val_2 = sheet.cell(row=i + 1, column=2).value val_3 = sheet.cell(row=i + 1, column=3).value file_name […]

遍历openpyxl中的只读工作簿中的列

我有一个很大的.xlsx文件 – 19列,5185行。 我想打开文件,读取一列中的所有值,对这些值做一些东西,然后在同一个工作簿中创build一个新列,并写出修改后的值。 因此,我需要能够在同一个文件中读写。 我原来的代码做到这一点: def readExcel(doc): wb = load_workbook(generalpath + exppath + doc) ws = wb["Sheet1"] # iterate through the columns to find the correct one for col in ws.iter_cols(min_row=1, max_row=1): for mycell in col: if mycell.value == "PerceivedSound.RESP": origCol = mycell.column # get the column letter for the first empty column to […]

追加完整的行与风格优秀

我正在使用“openpyxl”在“python”中编码,试图设置字体'Arial'到Excel文件中的某些列,但我的代码写的行很好,但没有字体。 在写入文件之前是否有解决字体的问题? 当前的代码,当试图设置字体的列被隐藏 ## SELECTING THE FILE wb = openpyxl.load_workbook(filepath) ## CREATTING WORKSHEET IF DOESNT EXIST if bool(x['workbook_name'] in wb.get_sheet_names()) == False: wb.create_sheet(x['workbook_name']) sheet = wb.get_sheet_by_name(x['workbook_name']) sheet['A1'] = 'Tel' sheet['B1'] = 'Fax' sheet['C1'] = 'email' sheet['D1'] = 'address' sheet['E1'] = 'date' sheet.column_dimensions['A'].font = Font(name="Arial") sheet.column_dimensions['B'].font = Font(name="Arial") sheet.column_dimensions['C'].font = Font(name="Arial") sheet.column_dimensions['D'].font = Font(name="Arial") sheet.column_dimensions['E'].font = […]