2016-04-29 8 views
0

У меня есть сценарий, который преобразует таблицу атрибутов класса объектов ESRI в файл excel. Проблема заключается в добавлении поля идентификатора объекта в процесс. Это завинчивает файл для загрузки в базу данных с помощью приложения .dtt, которое ссылается на заданный массив. Поэтому мне нужен скрипт для чтения выходного файла excel и добавления всего в новый файл excel без первого столбца. Все ведущие до xlrd и xlwt функций отлично работает, поэтому я исключаю все до начала таблицы, чтобы преуспеть преобразование:Запись массива из одного файла Excel в другой в Python

arcpy.TableToExcel_conversion(outTemplate, outXL) 
print "arcpy.AddMessage(Creating GoLive_+glName)" 

workbook = xlrd.open_workbook(outXL) 
writeBook = r"S:Upload\SVRSTA00.xls" 

sheet = workbook.sheet_by_index(0) 

cell_range_value = 0 
for value in sheet.col(32): 
    cell_range_value += 1 
print cell_range_value 

dct1 = {} 
for i in range(1, cell_range_value,1): 
    data = [sheet.cell_value(i, col) for col in range(sheet.ncols)[1:]] 
    cell_value_class = sheet.cell(i,32).value 
    cell_value_id = data 
    dct1[cell_value_class] = cell_value_id 

print 

workbook = xlwt.Workbook() 
sheet = workbook.add_sheet('SVRSTA00') 

for index, value in enumerate(dct1): 
    sheet.write(0, index, value) 

workbook.save(writeBook) 

Это ошибка, я получаю:

ValueError: column index (u'181011020') not an int in range(256) 

ответ

1

поддерживает Excel до 256 столбцов, обратите внимание на значение (от 0 до 255) столбца.

Вы можете использовать openpyxl, он более гибкий и полезный