Страница 1 из 1 |
Автор | Сообщение |
---|---|
|
0
ObjExcel.Cells[x + 2, 2] = "=СУММПРОИЗВ(C:C;D:D)";
Компилятор ругается и не хочет выводить эту строчку, все остальное в Excel выводит исправно. Полазил в гугле, ничего полезного не нашел Выдает вот такую ошибку: Исключение из HRESULT: 0x800A03EC.
Вопрос лоховский как мне кажется, но я с интеграцией в Excel столкнулся только сегодня и вообще случайно Так что помощь не помешает. Заранее благодарю откликнувшихся |
15 сен 2013, 17:51 |
|
|
0
я не шарю в Ц+ но 2 раза = это ок? мне кажется = перед СУММПРОИЗВ лишнее. либо что то не так в [x+2, 2] между двойками отсутствует что то важное
|
15 сен 2013, 18:08 |
|
|
0
Первое равно знак присвоения, а второе должно идти как обычный символ. Я вообще не понимаю с чего ему ругаться если это вывод обычной строки которая уже в Excel'е является формулой, но c шарп должен видеть ее как рядовую строку. |
15 сен 2013, 18:10 |
|
|
0
Попробуй objExcel.Cells(6, 1).Formula = "=SUM(A1:A4)" |
15 сен 2013, 18:42 |
|
|
0
Код: Microsoft.Office.Interop.Excel.Application XlApp = new Microsoft.Office.Interop.Excel.Application(); // всякие открытия екселя, книги, страницы
//2 строки выше делают таблицу читаемой (увеличивают отступ по высоте и ширине), иначе будет непонятная каша //закрытие |
15 сен 2013, 18:54 |
|
|
0
http://www.gotdotnet.ru/forums/4/122190/ Еще пишут, что индексация ячеек в экселе начинается с 1, а не 0. Отсюда может быть такой эксепшен. |
15 сен 2013, 18:57 |
|
|
0
Не знаток с#, но данная формула в экселе вызовет ворнинг на пустые ячейки, может проблема в этом. Попробуй локализовать столбцы, например: (С1:С5;D1:D5)
---
Ну и если дело в этом, то всегда убеждайся, что в ячейках есть значения перед тем, как писать формулу для их расчёта.
|
15 сен 2013, 19:37 |
|
|
0
В экселе она как раз таки работает не смотря на пустые строки. Размер меняется динамечески поэтому по конкретным строкам я написать не могу.
2deromik из твоего примера помогло только изменение ширины и высоты столбцов. Правда когда я пытаюсь изменить размер только одного столбца то выдает ошибку, а в цикле все нормально. Формула все так же ругается. В любом случае всем спасибо. Жду еще каких нибудь советов если кто сталкивался. Может проблема в кривом дотнете или офисе. Я уже не знаю. |
15 сен 2013, 20:13 |
|
|
0
Еще раз - в экселе она не работает идеально, на неё идёт warning. Этот warning может являться причиной того, что ты не можешь её записать. Ты попробовал то, что я сказал? Какие результаты? Надеюсь C1:C5 и D1:D5 ты значениями предварительно заполнил.
|
15 сен 2013, 21:01 |
|
|
0
может у теб x может равнятся -2? |
15 сен 2013, 22:16 |
|
|
0
#391 Никаких варнингов нет. Формулу вставил "от руки" через excel. Компилятор все так же ругается. С индексацией все в порядке: ObjExcel.Cells[x + 2, 1] = "Итог:";
Итог как видите выводится нормально, а сама формула должна выводится в соседнюю ячейку. Ячейка в столбце В так что формула не зацикливается. Я полагаю что дело все в корявой библиотеке, но не знаю как исправить эту проблемку. |
16 сен 2013, 13:44 |
|
|
0
http://тт/C_Sharp/comexcel.html#53 Нашел статью в которой все хоть как то описано, но описано скудно. Осталось передлать формулу так чтобы она считала весь столбец или до первой пустой ячейки если в Excel возможна такая проверка. Если кому интересно решение Код: Немного переделал метод:
Получился быдлокод, но когда сроки поджимают, то и так сойдет Спасибо всем откликнувшимся. |
16 сен 2013, 14:46 |
|
|
0
Решение, про которое я и говорил, что ячейки из-за пустых ренджей перебрать надо, а не писать (D:D;E:E). Вместо того, чтобы проверить то, что я предлагал сразу, провёл в интернете несколько дней.
|
17 сен 2013, 07:36 |
|
Страница 1 из 1 |