Delphi и TExcelApplication
2408
5
Picaro
гундос
Задача - сформировать лист в Excel в рантайме, заполнив его некоторыми данными, в том числе, формулами.
Вобщем, проблема в следующем.
Заполнение проходит нормально, формулы тоже работают, правда в RC-стиле ссылок, да это не важно. А вот если встречается функция, то Excel изначально ставит недопустимое имя, если на этой ячейке нажать F2-Enter, то все исправляется.
Проблема другая, если явно писать имя функции, например, '=сумм(...)', то в той же английской версии Excel будет перманентная ошибка.
Вопрос, как программно впихать в ячейку '=СУММ(R15C:R[-1]C)', чтоб работало?
Вобщем, проблема в следующем.
Заполнение проходит нормально, формулы тоже работают, правда в RC-стиле ссылок, да это не важно. А вот если встречается функция, то Excel изначально ставит недопустимое имя, если на этой ячейке нажать F2-Enter, то все исправляется.
Проблема другая, если явно писать имя функции, например, '=сумм(...)', то в той же английской версии Excel будет перманентная ошибка.
Вопрос, как программно впихать в ячейку '=СУММ(R15C:R[-1]C)', чтоб работало?
задай это вопрос здесь быстрее помогут. http://www.sql.ru/forum/actualtopics.aspx?bid=20
У самого не было ниразу такой необходимости (Вставлять формулы).
У самого не было ниразу такой необходимости (Вставлять формулы).
programmer1981
junior
Легко
Excel:=CreateOleObject('Excel.Application');
Excel.workbooks.Add();
w:=Excel.workBooks.worksheets.count;
WorkBook:=Excel.WorkBooks;
Sheet:=WorkBook.WorkSheets;
Sheet.Cells[20,20].formulalocal:='=Сумм(K4:K14)';
Excel.Visible:=True;
Excel:=CreateOleObject('Excel.Application');
Excel.workbooks.Add();
w:=Excel.workBooks.worksheets.count;
WorkBook:=Excel.WorkBooks;
Sheet:=WorkBook.WorkSheets;
Sheet.Cells[20,20].formulalocal:='=Сумм(K4:K14)';
Excel.Visible:=True;
Picaro
гундос
Sheet.Cells[20,20].formulalocal:='=Сумм(K4:K14)';Как выяснилось, вот так правильнее:
...FormulaR1C1 := '=SUM(RC[-4]:RC[-1])'...
Всем спасибо, вопрос исчерпан
Т.е. и в руской и в английской версии офиса, надо писать по англицки и всё будет ок?
Picaro
гундос
да. по крайней мере, с русским Ex2000 работает