Openpyxl丢失了电子表格格式

时间:2016-01-13 16:41:44

标签: python excel openpyxl

我正在尝试使用openpyxl编写一个python脚本,从本地服务器打开excel电子表格和csv文件。如果满足某些条件,我希望将csv文件中的行写入excel文件中的下一个可用行。

我的代码实现了这一点,但我在工作簿的其余部分中放弃了所有格式。如何让openpyxl仅在我的电子表格中添加信息而不在其他地方更改格式?任何帮助将不胜感激。

import urllib
import openpyxl
from openpyxl import load_workbook
wb = load_workbook('SPC.xlsx')
sht = wb.active
date = str(sht['A1'].value) + str(sht['B1'].value) + str(sht['C1'].value) + '00'
url = 'http://10.5.190.4/logs/Run_Data/'+date+'.CSV'
csv = urllib.request.urlopen(url).read().decode()
lines = csv.split('\n')
number = sht['F2'].value
i = 0
i1 = 1
i2 = 0
sht['A1'].value = 26
while lines[i] !='':
data = lines[1].split(',')
if data[2] == 'ON' and data[16] != '0':
    if data[3] == '' or data[4] == '' or data[5] == '':
        while i1 < 17:          
            sht.cell(row = number, column = i1).value = data[i1-1]
            i1 = i1 + 1
            i2 = i2 + 1
        number = number + 1
        i1 = 1
        i = i + 1
    else:
        while i1 < 17:          
            sht.cell(row = number, column = i1).value = data[i1-1]
            i1 = i1 + 1
            i2 = i2 + 1
        number = number + 1
        i1 = 1
        i = i + 1    
else:
    i = i + 1
wb.save('SPC.xlsx')
wb.close()

2 个答案:

答案 0 :(得分:1)

openpyxl不会从现有工作簿中删除格式。如果您认为存在问题,请使用示例文件和脚本创建错误报告。

答案 1 :(得分:0)

我有同样的问题,在用openpyxl打开文件后,更新它然后保存它我放弃了格式化信息。

此外,我收到如下错误消息(更多警告):Discarded range with reserved name

我终于意识到我正在使用从0开始的索引来读/写excel文件。但是Row0Col0在Excel中不存在。

从&#34; 0&#34;更改起始值后到了#1; 1),现在一切都很好。