当optimized_write设置为True时,是否可以使用Openpyxl并行创建多个excel文件?

2024-05-12 20:53:22 发布

您现在位置:Python中文网/ 问答频道 /正文

为了克服PHPExcel的内存限制,我们使用Python的openpyxl库来生成Excel文件,并使用thrift从PHP发送要保存在Excel文件中的数据。在

现在我们已经在一个对象数组中创建了几个客户机,并尝试在python端同时生成多个excel文件。当我们将optimized_write设置为False时,我们可以这样做,但是当optimized write flag设置为True时,我们不能这样做。在

    $ob[$X][$Y] = new PhpPythonExcel();
    $ob[$X][$Y]->client->openExcel(True); //openExcel method sets optimized_write flag to True of False.
    ...
    //write something to the files.
    ...
    $ob[$X][$Y]->client->saveFile($fileName);

有可能这样做吗,或者有黑客攻击吗?在


Tags: 文件to内存clientfalsetrueexcelthrift
1条回答
网友
1楼 · 发布于 2024-05-12 20:53:22

是的,这是可能的,不需要黑客攻击。只要稍微修改一下optimized-writer例程,就可以很容易地进行测试:

from openpyxl import Workbook

library = []
sheets = []
for x in range(5):
    wb = Workbook(optimized_write = True)
    library.append(wb)
    sheets.append(wb.create_sheet())

for irow in xrange(100):
    for idx, ws in enumerate(sheets):
        # + idx so they are all different
        ws.append(['%d' % (i + idx) for i in xrange(200)])

for idx, wb in enumerate(library):
    wb.save('new_big_file_{}.xlsx'.format(idx)) # don't forget to save !

相关问题 更多 >