1

Pythonを使用して.dbfファイルを.xlsに変換したいと思います。このスニペットを参照しましたが、このコードを使用して最初の非ヘッダー行を書き込むことができません:

    from xlwt import Workbook, easyxf
    import dbfpy.dbf

    dbf = dbfpy.dbf.Dbf("C:\\Temp\\Owner.dbf")
    book = Workbook()
    sheet1 = book.add_sheet('Sheet 1')

    header_style = easyxf('font: name Arial, bold True, height 200;')

    for (i, name) in enumerate(dbf.fieldNames):
        sheet1.write(0, i, name, header_style)

    for row in range(1, len(dbf)):
        for col in range(len(dbf.fieldNames)):
            sheet1.row(row).write(col, dbf[row][col])

    book.save("C:\\Temp\\Owner.xls")

最初の非ヘッダー行を書き込むにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

最初の行である dbf の行 0 がありません。dbf ファイルでは、列名は行ではありません。ただし、Excel ファイルの行 0 はヘッダーであるため、インデックスは dbf と xls で異なる必要があるため、Excel ワークシートで使用される行に 1 を追加する必要があります。

そう

for row in range(len(dbf)):
    for col in range(len(dbf.fieldNames)):
        sheet1.row(row+1).write(col, dbf[row][col])

参照されているスニッパーは、範囲内の 1 も追加しないことに注意してください。

于 2013-03-04T14:13:11.123 に答える