2017-10-23 5 views
-1

私はExcelの列A、私のコードにrootのタイトル値を書きたい:Pythonを凌駕するために書き込み行の値を繰り返します。私のコードに何が問題なのですか?

from openpyxl import Workbook 
import os 
path = "C:/path_to_folder" 
#word = '<option value="1.2.0-b.1" key="#SSPVersion#"/>' 
os.chdir(path) #change directroy to application notes folder 

titlelist = [] 

for root, dirs, files in os.walk(path): 
    title = str(root.split("/")[-1]) 
    titlelist.append(title) 

wb = Workbook() 
ws = wb.active 
r=2 
for t in titlelist: 
    ws.cell(row=r, column = 1).value = str(t) 
    r += 1 

wb.save("row_creation_loop.xlsx") 

これは動作しません...常にエラーを示しています

traceback(most recent call last): 
ws[column_cell+str(row+2)] = stri(i) 
self[key].value = value self._bind_value(value) 
value = self.check_string(value) 
value = unicode(value, self.encoding) 
unicodeDecodeError: 'utf8' codec can't decode byte 0*92 in position 17: invalid start byte 
+0

[UnicodeDecodeError: 'utf8'コーデックは、位置0のバイト0xa5をデコードできません:無効な開始バイト](https://stackoverflow.com/questions/22216076/unicodedecodeerror-utf8-codec-cant-decode-バイト0xa5-in-position-0-invalid-s) – davedwards

+0

あなたが何をしているかを知っていない限り、追跡は編集しないでください。このように役に立たないので、線とその位置を知る必要があります。 –

答えて

0

はちょうどここにいくつかの考えを投稿:これをここでのコード(だけで正常に動作し、タイトルに読み込まずにあなたのコピーである):

from openpyxl import Workbook 

titlelist = ["title1"] 

wb = Workbook() 
ws = wb.active 

for ind,t in enumerate(titlelist): 
    ws.cell(row= ind+2, column = 1).value = str(t) 

wb.save("row_creation_loop.xlsx") 

ので、ここでの問題は、ENCOできない文字が含まれているあなたのtitlelistですutf-8でのded。おそらく、いくつかのデコードとエンコードを使用して、修正する必要があります。

私たちとそのリストを共有します。

+0

ありがとう、私はこの問題を解決しました。 xlsxは私にとってはうまくいかず、CSVを使ってデータを書きます。それは完全に動作します。ありがとう。 –

+0

@ JenniferZouあなたはそれを理解してうれしい!がんばろう :) –

関連する問題