Tag: openpyxl

使用python(openpyxl)从excel中删除网格线

我试图删除从我使用openpyxl创build的Excel工作表中的网格线,而且它不工作。 我正在这样做: wb = Workbook() ws = wb.get_active_sheet() ws.show_gridlines = False print ws.show_gridlines wb.save('file.xlsx') 该代码打印“假”,但保存的文件显示网格线。

如何使用OpenPyXl清除Excel工作簿中的一系列值

我有一个工作簿,我想使用OpenPyXI清除一系列值。 到目前为止,我有以下几点: # import OpenPyXl module from openpyxl import load_workbook # load workbook wb = load_workbook(filename = 'testing.xlsx') # make variable with worksheet you want to view/modify sheet = wb['AR Cutoff'] # Change value of A3 sheet['A3'] = 'Assigned value' 总之,我正在尝试在OpenPyXL中执行以下VBA的相同操作: Worksheets("Sheet1").Range("A1:G37").Clear 谢谢!

以编程方式创build大型Excel工作表

我们使用OpenPyxl将MySQL内容以XSLX格式导出到Microsoft Excel https://bitbucket.org/ericgazoni/openpyxl/overview 但是,我们处理的数据量很大。 我们正在跑出内存的情况。 表格最多可以包含50000行以上的400列。 即使文件很大,它们也不是那么大,Microsoft Excel或OpenOffice应该有问题。 我们假设我们的问题主要来源于Python将XML DOM结构保存在内存中的效率不够高的事实。 编辑:埃里克,OpenPyxl的作者,指出有一个选项,使OpenPyxl与固定的内存使用写入。 然而,这并没有完全解决我们的问题,因为我们仍然在原始速度上遇到问题,而其他的东西却在Python中占用太多的内存。 现在我们正在寻找更有效的方法来创buildExcel文件。 最好使用Python,但是如果我们找不到一个好的解决scheme,我们也可能要看看其他的编程语言。 选项,不以任何特定的顺序,包括 1)使用OpenOffice和PyUno,希望他们的内存结构比OpenPyxl更有效率,并且TCP / IP调用网桥足够高效 2)Openpyxl使用xml.etree。 Python lxml(libxml2本机扩展)会更有效率的XML内存结构,是否有可能直接用xml.etreereplacelxml插入,例如与猴子修补? (如果有明确的好处,则可以将这些更改提供给Openpyxl) 3)从MySQL导出到CSV,然后使用Python和文件迭代将CSV文件直接后处理到XSLX 4)使用其他编程语言和库(Java) 指针: http://dev.lethain.com/handling-very-large-csv-and-xml-files-in-python/ Writing xlsx with java…

我如何获得合并单元格中的值?

我想要使​​用openpyxl库来获取从D3到H3的合并单元格的值。 根据我的理解,大多数库从第一个单元本身读取数据。 因此,合并的内容存在于其中,但是当我读到它时我没有得到任何价值。 以下是我的代码: wb = load_workbook(work_directory_path+'/outputs/report_vap.xlsx') ws = wb.get_sheet_by_name("Summary") suite_path = ws.cell('D3').value if not isinstance(suite_path, unicode): value=unicode(suite_path) value=value.encode('utf8') print "Suite Location is "+value; 输出是:Suite Location是None 单元格中D3到H3的值是:c:\ users \ xyz \ desktop \ abc \ c ++ \ events \ comevents 我甚至尝试打印表格中的所有值,但除了整数值之外,所有值都返回None。 以下是更改后的代码: wb = load_workbook(work_directory_path+'/outputs/report_vap.xlsx') ws = wb.get_sheet_by_name("Summary") for row_index in range (ws.get_highest_row()): for […]

遍历特定列openpyxl中的所有行

我无法弄清楚如何通过openpyxl迭代指定列中的所有行。 我想打印列“C”中的所有行的所有单元格值 现在我有: from openpyxl import workbook path = 'C:/workbook.xlsx' wb = load_workbook(filename = path) ws=wb.get_sheet_by_name('Sheet3') for row in ws.iter_rows(): for cell in row: if column == 'C': print cell.value

如何写入一个现有的Excel文件而不破坏公式与openpyxl?

当你用以下方式写入Python的excel文件时: import pandas from openpyxl import load_workbook book = load_workbook('Masterfile.xlsx') writer = pandas.ExcelWriter('Masterfile.xlsx') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2']) writer.save() 公式和指向现有工作表中图表的链接将被保存为值。 如何覆盖这种行为,以保存公式和图表的链接?

用不同的格式将pandasDataFrame写入Excel

我正在尝试将一个pandasDataFrame写入一个.xlsx文件,其中不同的数字列将具有不同的格式。 例如,一些只显示两位小数,一些显示没有,一些会被格式化为带有“%”符号的百分数等。 我注意到, DataFrame.to_html()有一个formatters参数,可以做到这一点,将不同的格式映射到不同的列。 但是, DataFrame.to_excel()方法没有类似的参数。 我们所拥有的最多的是一个对所有数字都是全局的float_format 。 我已经阅读了许多与我的问题至less部分相关的SOpost,例如: 使用较旧的openpyxl引擎一次应用一个单元格的格式 。 这是我取得最大成功的方法。 但是,这意味着编写循环来应用格式逐个单元格,记住偏移量等。 通过将表数据本身更改为string来渲染百分比 。 改变实际数据的路线激发了我在写入Excel之前,通过在每一列上调用round()来处理小数位格式化 – 这也起作用,但是我想避免改变数据。 什么其他人,主要是关于date格式 在pandasAPI中有没有其他更方便的Excel相关函数/属性可以在这里帮助,或者在openpyxl类似的东西,或者有些方法可以将输出格式元数据直接指定到DataFrame中的每个列上,然后在不同的下游进行解释输出器?

Openpyxl不能以只读模式closuresExcel工作簿

我希望能够在Python中读取一个Excel文件,在读完之后让Python脚本继续执行其他操作,同时可以在另一个进程中编辑Excel文件。 我正在使用python 2.7和openpyxl。 目前看起来像: from openpyxl import load_workbook def get_excel_data(): OESwb = load_workbook(filename = OESconfigFile, data_only=True, read_only=True) ws = OESwb.get_sheet_by_name('MC01') aValue = ws['A1'].value return aValue val = get_excel_data() 在我运行这个函数之后,即使我不想再用Python读取它,Excel文件仍然被locking以便从其他进程访问(它给出错误“'filename'当前正在使用,稍后再试”)。 我怎样才能closures我的脚本文件? 我已经尝试OESwb.close(),但它给出的错误“'工作簿'对象没有属性'closures'”。 我发现这个post,但它似乎并没有帮助。 编辑:它出现OESwb.save('filename.xlsx')的作品,但只有如果read_only = False。 但是,能够closures文件仍然处于只读模式是理想的。 看来这是一个openpyxl的bug,因为它应该在load_workbook完成后closures文件。

如何通过openpyxl更快地访问单元格值?

for rownum in range(0, len(self.sheet.rows) ): for cell in self.sheet.rows[rownum]: print cell.value 我想通过openpyxl逐行访问表格中的所有单元格值。 上面的代码工作,但太慢了。 我怎样才能更快地访问所有单元格的值?

如何将Openpyxl生成的xlsx输出到浏览器?

我使用了一段时间的计算器,它经常帮助我。 现在我有一个问题,我无法解决自己或通过search。 我试图输出我的excel文件,由浏览器中的openpyxl生成,就像我用phpexcel做的那样。 该方法似乎是相同的,但我只得到破碎的文件。 我的代码如下所示: from openpyxl.workbook import Workbook from openpyxl.writer.excel import ExcelWriter from openpyxl.writer.excel import save_virtual_workbook from openpyxl.cell import get_column_letter from StringIO import StringIO print 'Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' print 'Content-Disposition: attachment;filename="results.xlsx"' print 'Cache-Control: max-age=0\n' output = StringIO() wb = Workbook() ws = wb.worksheets[0] ws.cell('A1').value = 3.14 wb.save(output) print output.getvalue() #print save_virtual_workbook(wb) 我使用版本1.5.8和Python 2.7。 没有一种方法可行。 当我只是从桌面而不是浏览器使用它,它完美的作品。 […]