Python / Excel - фрагмент извлеченных данных Excel - исключение строк поддерживает структуру

Поэтому я пытаюсь исключить три верхние строки во время извлечения данных.

for col_num in xrange(sheet.ncols):
    col = sheet.col_values(col_num, start_rowx=3, end_rowx=None)
    writer.writerow(col) #this syntax also may be skewing my results as well

Этот цикл for удаляет верхние 3 строки, а затем превращает строки в столбцы.

Есть какие-нибудь советы о том, как сохранить структуру данных, но в то же время исключить строки?

Полный сценарий ниже:

import glob
import os
import xlrd
import csv

ROOTDIR = r'C:\Users\username\Desktop\Mults'
wb_pattern = os.path.join(ROOTDIR, '*.xlsx')

workbooks = glob.glob(wb_pattern)

with open('merged.csv', 'wb') as outcsv:
writer = csv.writer(outcsv)
    for wb in workbooks:
        book_path = os.path.join(ROOTDIR, wb)
        book =  xlrd.open_workbook(book_path)
        sheet = book.sheet_by_index(0)
        for colx in xrange(sheet.ncols):
            col = sheet.col_values(colx, start_rowx=2, end_rowx=None)
            writer.writerow(col) #this syntax also may be skewing my results

Спасибо!

Любая помощь высоко ценится!


person Mike V.    schedule 02.10.2014    source источник


Ответы (1)


Если вам нужны значения строк, почему вы тянете столбцы для записи в виде строк? Вытяните значения строк и напишите их:

import glob
import os
import xlrd
import csv

ROOTDIR = r'C:\Users\username\Desktop\Mults'
wb_pattern = os.path.join(ROOTDIR, '*.xlsx')

workbooks = glob.glob(wb_pattern)
start_rownum = 3 # or wherever you want to start copying
with open('merged.csv', 'wb') as outcsv:
    writer = csv.writer(outcsv)
    for wb in workbooks:
        book_path = os.path.join(ROOTDIR, wb)
        book =  xlrd.open_workbook(book_path)
        sheet = book.sheet_by_index(0)
        for rownum in xrange(start_rownum, sheet.numrows):
            row = sheet.row_values(rownum)
            writer.writerow(row)
person Peter DeGlopper    schedule 02.10.2014
comment
Спасибо за оперативный ответ. Я понимаю, что ты имеешь в виду. Я явно неправильно понял синтаксис [col_value]. Спасибо, что прояснили это для меня - person Mike V.; 03.10.2014
comment
col_values разбивает столбец на несколько строк, что подходит для работы с электронными таблицами, но не того, чего ожидает csvwriter. - person Peter DeGlopper; 03.10.2014