1

我需要更改excel工作簿中的工作表,与代码运行的次数一样多。假设我的python脚本第一次运行并且数据保存在工作表A中,下次运行某些应用程序时,我的脚本数据应该保存在工作表中B.Sheet A 应该与该工作簿中的一样。它可能吗?如果是,如何?这是我的代码:

#!/usr/bin/env python
import subprocess
import xlwt
process=subprocess.Popen('Test_Project.exe',stdout=subprocess.PIPE)
out,err = process.communicate()
wb=xlwt.Workbook()
sheet=wb.add_sheet('Sheet_A') #next time it should save in Sheet_B
row = 0
for line in out.split('\n'): 
    for i,wrd in enumerate(line.split()):    
        if not wrd.startswith("***"):
            print wrd   
        sheet.write(row,i,wrd)
    row=row+1

wb.save('DDS.xls') 

任何帮助表示赞赏...

4

1 回答 1

1

我建议使用openpyxl。它可以读取写入 xlsx 文件。如果需要,您始终可以使用 Excel 或 Open/LibreOffice 将它们转换为 xls,假设您最后只有一个大文件。

如果不存在,此脚本会创建一个新的 Excel 文件,并在每次运行时添加一个新工作表。我使用从 1 开始的工作表index + 1名称(title123

import os

from openpyxl import Workbook
from openpyxl.reader.excel import load_workbook

file_name = 'test.xlsx'

if os.path.exists(file_name):
    wb = load_workbook(file_name)
    last_sheet = wb.worksheets[-1]
    index = int(last_sheet.title)
    ws = wb.create_sheet(index)
    ws.title = str(index + 1)
else:
    wb = Workbook()
    ws = wb.worksheets[0]
    ws.title = '1'
ws.cell('A2').value= 'new_value'
wb.save(file_name)
于 2013-05-31T23:21:18.270 回答