0

我之前发布了一个类似的问题,但我的理解是我正在处理 CSV 文件。我似乎拥有的是伪装成 CSV 的 xls 文件。我拥有的 CSV 无法在 Excel 以外的任何应用程序中打开,否则运行脚本后会出现各种奇怪的字符。

我要做的是从目录中的单个 csv 文件(Excel 文件)中捕获特定的单元格值(0.342 或类似格式的数字),然后将它们发布到新的 Excel 文件中。因此,如果我在一个目录中有四个 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 回答