0

以前に同様の質問を投稿しましたが、私の理解では、CSV ファイルを扱っていたということでした。私が持っているように見えるのは、CSV を装った xls ファイルです。私が持っている CSV は、Excel 以外のアプリケーションでは開くことができません。そうしないと、スクリプトの実行後にあらゆる種類の奇妙な文字が表示されます。

私が探しているのは、ディレクトリ内の個々の csv ファイル (Excel ファイル) から特定のセル値 (0.342 などの形式の数値) を取得し、それらを新しい Excel ファイルに投稿することです。したがって、ディレクトリに 4 つの csv ファイルがある場合、各 csv ファイルからセル [B:12] の値を取得し、それらを次のようなリストの新しい Excel ファイルに投稿したいと思います...

0.345、0.342、0.543、0.246、

以下に部分的に機能するコードをいくつか投稿しました。行の時点でいくつかの正しい値を出力できます >> データを出力 << しかし、出力 Excel ファイルに値を正しく保存できません。これまでのところ、上記の空白セルで処理された最後の CSV ファイルからのセル [B:12] の値だけが得られます。どんな助けでも大歓迎です。

import xlwt
import xlrd
import csv
import os


files = ['file1.csv','file2.csv','file3.csv','file4.csv']
n = 0
row = 0
#filename = ('outputFULL.csv', 'a')
outputfile = open('outputList.xls', 'wb')

while n<len(files):
    fname = files[n]
    currentfile = xlrd.open_workbook(fname,'r')
    sheetr = currentfile.sheet_by_index(0)
    data = [sheetr.cell_value(12, 1) for col in range(sheetr.ncols)]
    print data #for testing

    workbookw = xlwt.Workbook()
    sheetw = workbookw.add_sheet('test')

    for index, value in enumerate(data):
        sheetw.write(row, index, value)
        workbookw.save('outputList.xls')

        row = row +1
        n = n+1    

workbookw.save('outputList.xls')
4

1 に答える 1

0

更新しました

私の質問に対するあなたの回答に基づいて、コードを大幅に簡素化できると思います。ここの要件に何か不足がある場合、または質問がある場合はお知らせください。

import xlwt, xlrd, csv, os

files = ['file1.csv','file2.csv','file3.csv','file4.csv']
outputfile = 'outputList.xls'
wbk = xlwt.Workbook()
sheetw = wbk.add_sheet('sheet 1')
row_offset, col_offset = 2, 2 # i.e. 2, 2 to print in C3 instead of A1

for fname in files:
    currentfile = xlrd.open_workbook(fname,'r')
    sheetr = currentfile.sheet_by_index(0)    
    data = sheetr.cell(11,0).value
    print data #for testing
    sheetw.write(files.index(fname) + row_offset, 0 + col_offset, data)    

wbk.save(outputfile)
于 2013-10-11T09:18:50.240 に答える