Сегодня мне нужно было разобрать некоторые данные из файла xlsx (Office open XML Spreadsheet). Я мог бы просто открыть файлы в openoffice и экспортировать в csv. Однако мне нужно будет повторно импортировать данные из этой таблицы позже, и я хотел исключить ручную работу.Где я должен писать свой код на Python?
Я искал в сети для XLSX синтаксического анализа, и все, что я нашел, был StackOverflow вопрос задает ту же вещь: Parsing and generating Microsoft Office 2007 files (.docx, .xlsx, .pptx)
Так я закатила самостоятельно.
Это 134 строки кода для разбора и доступа к электронной таблице и 54 строки кода модульных тестов. Это, конечно, проверяется только на 1 файл, который мне нужен, и кроме того, как он используется в модульных тестах, сейчас нет документации. Он использует zipfile, minidom, re и unittest, поэтому совершенно портативный и независимый от платформы.
Поскольку я не занимаюсь блогами, и у меня нет никакого желания превратить это в библиотеку python для OfficeOpen XML, я застрял, задаваясь вопросом, где я должен опубликовать этот код. Я решил проблему, что, я уверен, другие получат в будущем. Поэтому я хочу опубликовать свой код под общественным достоянием где-нибудь, чтобы кто-то мог скопировать и вставить в свое приложение и настроить исправление их проблемы.
Реализация проста, и вот краткий обзор от особенностей:
workbook = Workbook(filename) # open a file
for sheet in workbook: pass # iterate over the worksheets
workbook["sheetname"] # access a sheet by name, also possible to do by index from 0
sheet["A1"] # Access cell
sheet["A"] # Access column
sheet["1"] # Access row
cell.value # Cell value - only tested with ints and strings.
Спасибо за все ответы. Я собирался разместить его на активизации, но страница продолжала сбой при отправке мне почты активации. Поэтому я не могу активировать свой код, чтобы опубликовать его.
Мой второй выбор был codeproject, и я написал хорошую статью о файле. К сожалению, эта страница падает, когда я пытаюсь отправить свой пост.
Так что я положил его на GitHub для любого, чтобы видеть и ответвляются: http://github.com/staale/python-xlsx/tree/master
Я не хочу, чтобы сделать всю работу за хостинг питон проекта, так что вне.
Принимая ответ git, поскольку это было единственное, что сработало для меня. И git камни.
Редактировать: Gah, потерял все мое сообщение в codeproject, и я сделал такую приятную запись. Вверните его, я потратил больше времени, пытаясь поделиться этим, чем потребовалось его кодирование. Поэтому я призываю это сделать для себя, как сейчас. Если я не решит настроить его более позднее.
Используйте тег 'excel-2007' вместо 'xlsx'. Следите за подсказками предложения при пометке своих вопросов: любой тэг с числом меньше 10 после его имени, вероятно, ошибочен. –