2016-01-13 55 views
0

我想寫一個python腳本使用openpyxl從本地服務器打開excel電子表格和csv文件。如果符合某些條件,我需要將csv文件中的行寫入excel文件中的下一個可用行。Openpyxl失去電子表格格式

我的代碼實現了這一點,但是我在工作簿的其餘部分中丟失了所有格式。我如何獲得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() 
+0

看看這裏的筆記:https://openpyxl.readthedocs.org/en/default/usage.html#read-an-existing-workbook –

+0

如果你有一個特定的文本樣式,你正在嘗試保持,那麼你將需要讀取最後一個樣式的行,並指定要在要寫入的單元格中使用的樣式。 [看這裏](http://openpyxl.readthedocs.org/en/default/styles.html)另外,對於語法糖,您可以將所有「i1 = i1 + 1」更改爲「i1 + = 1」,這是等同的。 – disflux

回答

0

openpyxl不會從現有工作簿中去除格式。如果您認爲存在問題,請使用示例文件和腳本創建一個錯誤報告。

+0

如果我遺漏了一個明顯的解決方案,請原諒我,但似乎openpyxl/does /從電子表格中的數字值中刪除像$符號和逗號之類的東西。我明白爲什麼能夠檢索一個整數是有用的,但是有沒有一種簡單的方法來獲取包含這些東西的字符串? –