Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import uno
from os.path import abspath, isfile, splitext
PORT = 8100
if len(sys.argv) < 4:
print 'Usage: oreplace SEARCH REPLACE PATH'
sys.exit(0)
inputFile = sys.argv[3]
searchString = sys.argv[1]
replaceString = sys.argv[2]
localCtx = uno.getComponentContext()
localSmgr = localCtx.ServiceManager
uresolver = localSmgr.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", localCtx)
ctx = uresolver.resolve( \
"uno:socket,host=localhost,port=%d;urp;StarOffice.ComponentContext" % PORT)
smgr = ctx.ServiceManager
desktop = smgr.createInstanceWithContext(
"com.sun.star.frame.Desktop", ctx)
document = desktop.loadComponentFromURL( \
uno.systemPathToFileUrl(abspath(inputFile)), "_blank", 0, tuple([]))
doc = document
if hasattr(document, 'getSheets'):
sheets = document.getSheets()
doc = sheets.getCellRangesByName(u'A1:AMJ1048576')[0]
if not hasattr(doc, 'createReplaceDescriptor'):
print 'Unknown document type'
sys.exit(1)
try:
replaceDesc = doc.createReplaceDescriptor()
replaceDesc.SearchString = searchString
replaceDesc.ReplaceString = replaceString
found = doc.replaceAll(replaceDesc)
document.store()
finally:
document.close(True)
PyUNO — быстрое незначительное редактирование xls-отчета из Python