Не знаю, как "расписано" а в жизни работает с этим форматом вроде ничего - на
людях испытывал...
У меня даже была мысль выдрать из их исходников openoffice разбор этого формата.
Но видимо мне это недостаточно сильно нужно.
И не говори!
Как-то задумался - и ужаснулся тому, КАК МНОГО в жизни
такого, что мне нужно "недостаточно сильно"... ;D
))
--
С уважением,
Степанец Александр Валентинович.
Здравствуйте, Олег !
Спасибо за науку, все получилось.
Поучите пожалуйста меня еще немножко
Не получается ввести формулу - хочу сосчитать итог по столбцу все цыфры с 5 ряда в текущем столбце
locXLS.Write:FORMULA('=SUM(R5С:R[-1]C)',col,row)
locXLS.Write:FORMULA('=СУММА(R5С:R[-1]C)',col,row) - тоже не работает хотя эта формула в Excel - работает на ура.
выдает ошибку " Invalid Field Type Descrptor "
Я наверное опять что-то не так делаю....
И еще я хотела уточнить - у нас нет метода для определения ширины ячейки ? Не посоветуете чем
С уважением,
Галина.
Не получается ввести формулу - хочу сосчитать итог по столбцу: все цыфры с 5 ряда в текущем столбце
А что такое "текущий столбец" применительно к dExcel!?
locXLS.Write:FORMULA('=SUM(R5С:R[-1]C)',col,row)
locXLS.Write:FORMULA('=СУММА(R5С:R[-1]C)',col,row)
- тоже не работает
Во-первых: координаты ячеек, столбцов и рядов необходимо задавать явно и в виде 'A1'.
Во-вторых: начинать формулу не следует с '='.
Хотя, это я, очевидно, подправлю - что-бы ведущый знак '=' метод игнорировал.
И, в-третьих, формула ЯВНО НЕ ПЕРЕДАЕТСЯ Excel`ю - у него, к сожалению, нет такой возможности принимать формулы в явном виде через XLS-файл! Поэтому метод полностью парсит входную формулу, переводит ее в "обратную польскую запись", кодирует в лексемах Excel и уже в таком подготовленном виде записывает ее в XLS-файл. При открытии файла Excel все эти формулы пересчитывает и выдает на их месте готовый результат.
И это необходимо иметь в виду - мне, честно говоря, совсем не хочется в ПОЛНОЙ мере реализовывать блок обработки формул MS-Excel! И так сделано довольно много - в единственной похожей либе была реализована только работа с функцией SUM в простейшем ее варианте!
выдает ошибку " Invalid Field Type Descrptor"
Я наверное опять что-то не так делаю....
Исходя из вышеописанного:
- предположим, что "текущая колонка" - это 'A':
locXLS.Write:FORMULA('SUM(A5:A16385)',col,row)
Кстати, спасибо за напоминание - сделать поддержку адресации типа RC! Просто у меня, если и возникает необходимость использовать формулы, то, обычно, только по рядам заданной колонки и, соответственно, нет проблем с указанием явного имени колонки.
А вот насчет '[-1]' - не думаю, что стоит это реализовывать?
И еще я хотела уточнить - у нас нет метода для определения ширины ячейки ? Не посоветуете чем
Так я же об этом писал уже в предыдущем письме!
В dExcel ширина ячейки задается в символах.
К сожалению, нет возможности точного определения ширины ячейки в зависимости от типа и размера шрифта.
Хотя, конечно, можно определить сначала ширину заданной строки в пикселях WinAPI и уже на ее основе пересчитывать нужную ширину ячейки.
Но, имхо, стоит-ли? В большинстве случаев ширина ячейки в символах вполне подходит!
=============================
С уважением,
Олег А. Руденко
Написал: ClaList(2)