Tag: openpyxl

使用xlwt vs openpyxl

我需要一些在PYTHON中的openpyxl的帮助。 我一直使用xlwt相当成功,但现在我有一些文件(在MySQL工作台),包含超过65,000行。 我知道我可以创build一个CSV文件,但是XLSX是首选的输出。 我能够使用openpyxl创build工作簿,但是我没有成功将MySQL数据放入表中。 使用xlwt的程序的主要部分是非常简单的(见下文)。 我似乎无法弄清楚如何使用openpyxl做同样的事情。 我已经尝试了许多不同的组合和解决scheme。 我只是在“for x in result:”之后卡住了。 file_dest = "c:\home\test.xls" result = dest.execute("select a, b, c, d from filea) for x in result: rw = rw + 1 sheet1 = book.add.sheet('Sheet 1') row1 = sheet1.row(rw) row1.write(1,x[0]) row1.write(1,x[1]) row1.write(1,x[2]) row1.write(1,x[3]) book.save(file_dest)

识别Openpyxl中的单元格

我一直在做一个项目,在这个项目中,我search一个包含特定值“x”的单元格的.xlsx文档。 我设法得到了这么多,但我不能提取所述单元格的位置。 这是我提出的代码: from openpyxl import load_workbook wb = load_workbook(filename = 'Abstract.xlsx', use_iterators = True) ws = wb.get_sheet_by_name(name = 'Abstract') for row in ws.iter_rows(): for cell in row: if cell.value == "E01234": print "TRUE" 当我运行这个脚本时,如果在引用的.xlsx中有一个值为“E01234”的单元格,它会打印TRUE。 我现在需要的是获取具有“E01234”值的单元格的行和列地址(即:A4)。 在我的项目中, 我希望编辑与识别行相同行的另一个单元格。 任何见解?

如何在openpyxl中使用字段名称或列标题?

看到我的代码如下。 这个代码工作得很好,但我想做两件事情。 有一件事是我做了,如果声明比实际或短得多比如。 我有很多这样的列,并不是所有的彼此相邻。 我希望它更短。 此外,有时我可能不知道确切的列字母。 所以我想知道是否有办法知道列名或标题。 就像在最顶端的价值观一样。 所以我可以testing,看看它是否是这些值之一,如果它在指定的列中,总是对该单元格执行函数。 我无法findopenpyxl函数来做列名。 不知道是否理解第一行与rest不同。 我想也许如果不是,我可以尝试做第一排testing,但不明白如何做到这一点。 那么有没有办法调用列名? 或者如果没有办法调用列名testing,有人可以帮我做第一行检查,看看它是否有价值? 那么改变正确的行我在? 这是否有道理? 所以,而不是代码说: if cellObj.column == 'H' or … 它会说: if cellObj.column_header == 'NameOfField or … 或者如果不能这样做,那么: if this cell has column where first row value is 'NameOfField' … 请帮助最好的方式来做到这一点。 我已经看到了stackoverflow和书籍和博客网站,但似乎并没有调用列名(不是列的字母)的方式。 for row in sheet.iter_rows(): for cellObj in row: if cellObj.column […]

如何通过使用openpyxl读取xlsx颜色信息

我正在使用openpyxl来读取excel文件。 对于我的应用程序,我需要读取xlsx文件中单元格的背景颜色但是我找不到如何加载这些颜色信息。 我试图使用cell.style.fill.color.index,但它只返回FFFFFFFF作为背景,这是不正确的,我读的文件。 openpyxl是否支持阅读颜色格式?

Openpyxl和隐藏/未隐藏的Excel工作表

我有以下代码从制表符分隔的文本文件中读取数据,然后将其写入到现有Excel工作簿中指定的工作表。 用户inputvariables“workbook”,“write_sheet”和“text_file” tab_reader = csv.reader(text_file, delimiter='\t') xls_book = openpyxl.load_workbook(filename=workbook) sheet_names = xls_book.get_sheet_names() xls_sheet = xls_book.get_sheet_by_name(write_sheet) for row_index, row in enumerate(tab_reader): number = 0 col_number = first_col while number < num_cols: cell_tmp = xls_sheet.cell(row = row_index, column = col_number) cell_tmp.value = row[number] number += 1 col_number += 1 xls_book.save(workbook) 但是,当我在“工作表”是一个隐藏的选项卡的预先存在的“工作簿”上运行此代码时,输​​出取消隐藏该选项卡。 我认为这是因为openpyxl没有修改文件,而是完全创build一个新的文件。 有没有一种简单的方法告诉python检查工作表是否隐藏,然后根据条件是否满足输出隐藏或未隐藏的表单? 谢谢!

在Python中读取.xlsx格式

我必须在Python中每隔10min读取.xlsx文件。 什么是最有效的方法来做到这一点? 我试过使用xlrd,但它不会读取.xlsx – 根据他的文档,但我不能这样做 – 获取Unsupported format, or corrupt fileexception。 什么是最好的方式来阅读xlsx? 我也需要在单元格中阅读评论。

使用openpyxl将范围应用于范围内的所有单元格

我有一个脚本,需要一个pandas数据框,并把它切成几百块,并保存每个块作为一个单独的Excel文件。 每个块将具有相同的列数,但行数不同。 我已经想出了如何将所有其他必要的格式应用到这些文件与openpyxl,但我还没有确定最快的方式来应用边界。 此外,我认为我只是没有正确应用边框,因为下面的代码(我怀疑不应该需要循环每个单元格)不适用任何边框。 from openpyxl.style import Border wb = load_workbook(filename = _fname) ws = wb.worksheets[0] for _row in ws.range('A1:L'+str(ws.get_highest_row() ) ): for _cell in _row: _cell.style.borders.left.border_style = Border.BORDER_THIN _cell.style.borders.right.border_style = Border.BORDER_THIN _cell.style.borders.top.border_style = Border.BORDER_THIN _cell.style.borders.bottom.border_style = Border.BORDER_THIN wb.save(_fname) 所以这个代码可以工作 ,但是它并不适用我期望的边框(在Excel中默认的边框),并且它比我想要的要多得多。 我的期望是,我应该能够做到这样的事情: from openpyxl.style import Border wb = load_workbook(filename = _fname) ws = wb.worksheets[0] _range […]

使用Openpyxl将边框应用于单元格范围

我使用python 2.7.10和openpyxl 2.3.2,我是一个Python新手。 我正在尝试将边框应用于Excel工作表中的指定范围的单元格(例如C3:H10 )。 我下面的尝试是失败的以下消息: AttributeError:“单元格”对象没有属性“样式”。 如何将边框添加到单元格? 任何见解都会受到感谢。 我目前的代码: import openpyxl from openpyxl.styles import Border, Side def set_border(ws, cell_range): rows = ws.iter_rows(cell_range) for row in rows: row[0].styles.borders = Border(left=Side(border_style='thin', color="FF000000")) row[-1].styles.borders = Border(right=Side(border_style='thin', color="FF000000")) for c in rows[0]: c.styles.borders = Border(top=Side(border_style='thin', color="FF000000")) for c in rows[-1]: c.styles.borders = Border(bottom=Side(border_style='thin', color="FF000000")) # Example call to […]

Openpyxl如何通过索引从工作表中获取行

使用Openpyxl和python3.5,我试图从一个Excel工作表使用下标,但我是一个错误。 # after getting filename # after loading worksheet # to get the first row of the worksheet first_row = worksheet.rows[0] # I get Traceback (most recent call last): File "<pyshell#54>", line 1, in <module> first_row = phc_th_sheet.rows[1] TypeError: 'generator' object is not subscriptable 关于获得第一行,我也试过first_row = worksheet。(row = 1)#和first_row = worksheet.rows [:1] 没有工作。 任何build议或是function不可用在openpyxl? 我去过https://openpyxl.readthedocs.io/en/default/上的文档,但是我发现没有什么帮助索引和select行

使用OpenPyXL遍历表单元和单元格,并用连续string更新单元格

我想使用OpenPyXL来search工作簿,但是我遇到了一些我希望有人可以帮忙的问题。 这里有几个障碍/待办事项: 我有一个未知数量的表格和单元格 我想要search工作簿并将工作表名称放入数组中 我想遍历每个数组项并search包含特定string的单元格 我有UNCpath引用旧服务器的单元格。 我需要提取UNCpath中的服务器名称后面的所有文本,更新服务器名称,并将剩余的文本污染回服务器名称 例如\ file-server \ blah \ blah \ blah.xlsx; 提取\文件服务器\; 用\ file-server1 \replace; 把新的名字后面留下blah \ blah \ blah.xlsx。 保存xlsx文件 我是Python的新手,所以有人能够指出我正确的方向吗? 示例代码是赞赏,因为我知道该怎么做在这一点上是通过一个已知的工作簿,已知的工作表名称,然后打印数据。 在迭代工作表和单元格时,我不知道如何包含通配符。 我已经做了什么来显示单元格的内容: from openpyxl import load_workbook, worksheet def main(): #read workbook to get data wb = load_workbook(filename = 'Book1_test.xlsx', use_iterators = True) ws = wb.get_sheet_by_name(name = 'Sheet1') #ws […]