Найти - Пользователи
Полная версия: Python + Word
Начало » Python для экспертов » Python + Word
1 2
Ment0r
Каким образом можно организовать считывание данных из документов Word, Excel?
well
Ment0r
Для работы с Excel я использую pyExcelerator. Доволен и не знаю проблем. Там сразу идет неплохая подборка примеров.
pythonwin
по вопросу python+Excel есть майл группа http://groups.google.com/group/python-excel
для считывания = http://pypi.python.org/pypi/xlrd
для записи = pyExcelerator
well
pythonwin
по вопросу python+Excel есть майл группа http://groups.google.com/group/python-excel
для считывания = http://pypi.python.org/pypi/xlrd
для записи = pyExcelerator
А я неплохо и через pyExcelerator читал. Просто зачем ставить дополнительно другой пакет, если все есть в одной пачке :)
proDiva
well
Покажите, если не трудно, каким образом вы через pyExcelerator читали? Я до сих пор думала, что он только для записи, даже в аннотации пишется, что он формирует xls-файлы.
well
proDiva
well
Покажите, если не трудно, каким образом вы через pyExcelerator читали? Я до сих пор думала, что он только для записи, даже в аннотации пишется, что он формирует xls-файлы.
Вот отличный пример нашел в сырцах. Перегоняет xls в txt:

#!/usr/bin/env python
# -*- coding: windows-1251 -*-
# Copyright (C) 2005 Kiseliov Roman


from pyExcelerator import *
import sys

me, args = sys.argv, sys.argv

if args:
for arg in args:
print >>sys.stderr, ‘extracting data from’, arg
for sheet_name, values in parse_xls(arg, ‘cp1251’): # parse_xls(arg) – default encoding
print ‘Sheet = “%s”’ % sheet_name.encode('cp866', ‘backslashreplace’)
print ‘—————-’
for row_idx, col_idx in sorted(values.keys()):
v = values
if isinstance(v, unicode):
v = v.encode('cp866', ‘backslashreplace’)
print ‘(%d, %d) =’ % (row_idx, col_idx), v
print ‘—————-’
else:
print ‘usage: %s (inputfile)+’ % me
BION
Ment0r
Каким образом можно организовать считывание данных из документов Word, Excel?
Для работы с Word'ом я использовал win32com из pywin32 http://sourceforge.net/project/showfiles.php?group_id=78018

пример
# -*- coding: cp1251 -*-
import win32com.client
objWord = win32com.client.Dispatch(r'Word.Application',"Администратор",UnicodeToString="cp1251")
objWord.Visible = True
objDoc = objWord.Documents.Add()
objDoc.Activate
objDoc.ActiveWindow.Selection.InsertAfter("Привет.")
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.InsertAfter("Чувачёк.")
objDoc.ActiveWindow.Selection.InsertParagraphAfter
objDoc.ActiveWindow.Selection.Font.Bold = True
objDoc.ActiveWindow.Selection.EndOf
objDoc.SaveAs("C:/Test.doc")
del objDoc
objWord.Quit()
как считывать почитай доки, Word VBA тоже почитай там все оч похоже
hellt
как извращенный вариант - использование IronPy и собственно .net либы для работы с word
pythonwin
well
Просто зачем ставить дополнительно другой пакет, если все есть в одной пачке :)
а цвета ячеек как определять?
clopomor
Цікавить таке питання -
є шаблонний файл - для прикладу - shablon.xls
там шапка, форматування, різні стилі…
як на основі цього шаблонного видати інший уже заповнений файл із збереженням стилів…
через pyExcelerator перекачуються дані які вбиті в шаблон… новими даними теж немає проблем наповнити…
але ось отримати із шаблону стилі (шрифти, рамки, розміри чарунків) невдається….
def export_g(request):
    w = Workbook()
    ws = w.add_sheet('Gurnal')
    fname='/server/djapp/neptun/templates/gurnal/gurnal.xls'
    style = XFStyle()
    for sheet_name, values in parse_xls(fname, 'utf-8'):
        for row_idx, col_idx in sorted(values.keys()):
                v = values[(row_idx, col_idx)]
                ws.write(row_idx,col_idx,v,style)
  Response = HttpResponse(mimetype='application/vnd.ms-excel')
  Response['Content-Disposition'] = 'attachment; filename=gurnal.xls'
  w.save(Response)
  return Response

мож хто приклад підкине… Був б вдячний
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB