unotools - попробуйте конвертировать файлы ods или excel в csv, используя python

Что мне нужно, так это инструмент командной строки для преобразования файлов электронных таблиц Excel и ODS в CSV, который я могу использовать на веб-сервере (Ubuntu 16.04). Я уже прочитал это: https://pypi.python.org/pypi/unotools который отлично работает для приведенных примеров.

И это: http://www.linuxjournal.com/content/convert-spreadsheets-csv-files-python-and-pyuno-part-1v2 которая должна выполнять ту работу, которую я хочу, но не в моей среде.

Моя проблема, я думаю, заключается в методе Calc.store_to_url:

Исключение броска строки

component.store_to_url(url,'FilterName','Text - txt - csv (StarCalc)')

Я действительно был бы признателен за подсказку.

исключение

unotools.unohelper.ErrorCodeIOException: SfxBaseModel::impl_store не удалось: 0x81a

Полный источник

import sys
from os.path import basename, join as pathjoin, splitext

from unotools import Socket, connect
from unotools.component.calc import Calc
from unotools.unohelper import convert_path_to_url
from unotools import parse_argument



def get_component(args, context):
    _, ext = splitext(args.file_)
    url = convert_path_to_url(args.file_)
    component = Calc(context, url)
    return component

def convert_csv(args, context):
    component = get_component(args, context)
    url = 'out/result.csv'    
    component.store_to_url(url,'FilterName','Text - txt - csv (StarCalc)')
    component.close(True)


args = parse_argument(sys.argv[1:])
context = connect(Socket(args.host, args.port), option=args.option)

convert_csv(args, context)

1 ответ

Решение

URL должен быть в file:// формат.

url = convert_path_to_url('out/result.csv')

Увидеть store_to_url пример на https://pypi.python.org/pypi/unotools.

РЕДАКТИРОВАТЬ:

Чтобы использовать абсолютный путь, выберите один из них; нет необходимости объединять их.

url = 'file:///home/me/out/result.csv'
url = convert_path_to_url('/home/me/out/result.csv')

Чтобы использовать относительный путь, сначала убедитесь, что рабочим каталогом является / home / me, вызвав os.getcwd ().

Другие вопросы по тегам