Python Openpyxl放松了电子表格格式

Python Openpyxl放松了电子表格格式,python,excel,openpyxl,Python,Excel,Openpyxl,我正在尝试使用openpyxl编写python脚本,以从本地服务器打开excel电子表格和csv文件。如果满足某些条件,我希望将csv文件中的行写入excel文件中的下一行 我的代码实现了这一点,但我在工作簿的其余部分丢失了所有格式。如何让openpyxl只向电子表格中添加信息而不更改其他地方的格式?任何帮助都将不胜感激 import urllib import openpyxl from openpyxl import load_workbook wb = load_workbook('SPC

我正在尝试使用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()
导入urllib
导入openpyxl
从openpyxl导入加载工作簿
wb=加载工作簿('SPC.xlsx')
sht=wb.active
日期=str(sht['A1']值)+str(sht['B1']值)+str(sht['C1']值)+'00'
url='1〕http://10.5.190.4/logs/Run_Data/“+日期+”.CSV”
csv=urllib.request.urlopen(url.read().decode())
行=csv.split('\n')
编号=sht['F2'].值
i=0
i1=1
i2=0
sht['A1'].值=26
而行[i]!='':
数据=行[1]。拆分(“,”)
如果数据[2]=“开启”且数据[16]!=“关闭”0':
如果数据[3]=''或数据[4]=''或数据[5]='':
当i1<17时:
短单元格(行=编号,列=i1)。值=数据[i1-1]
i1=i1+1
i2=i2+1
数字=数字+1
i1=1
i=i+1
其他:
当i1<17时:
短单元格(行=编号,列=i1)。值=数据[i1-1]
i1=i1+1
i2=i2+1
数字=数字+1
i1=1
i=i+1
其他:
i=i+1
wb.save('SPC.xlsx')
wb.close()

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

我也有同样的问题,在使用
openpyxl
打开文件后,更新并保存它。我确实丢失了格式信息

我还收到如下错误消息(更多的是警告):
丢弃了保留名称的范围

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


将起始值从“0”更改为“1)现在一切都好了

看一下这里的注释:如果您有一个要维护的特定文本样式,那么您需要读取最后一行样式,并指定要在要写入的单元格中使用的样式。此外,对于语法糖,您可以将所有的“i1=i1+1”更改为“i1+=1”,这是等效的。如果我缺少一个明显的解决方案,请原谅,但openpyxl/似乎可以/删除电子表格中数值中的$符号和逗号。我理解为什么能够检索整数很有用,但是有没有一种简单的方法可以获取包含这些内容的字符串?