powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Функции для работы с Excel из C#
9 сообщений из 509, страница 21 из 21
Функции для работы с Excel из C#
    #38649784
kira_006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
igr_ok,

Возможно, Вы правы на счет кода. По другому еще не научилась писать, поэтому и пишу сюда.

Попробовала вставить такой код(нашла на одном форуме):
Код: c#
1.
2.
3.
4.
5.
6.
7.
private void button2_Click(object sender, EventArgs e)
        {
            
            object range = dataGridView1.DataSource.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, dataGridView1.DataSource, new object[] { "B5" });
            range.GetType().InvokeMember("Formula", BindingFlags.SetProperty, null, range, new object[] { "=СУММ(B3:B4)" });
            
        }



Но пишет ошибку, что не найден метод System.DataTable.Range. Я так думаю, что это из-за dataGridView1.DataSource.
Не могли бы Вы подсказать, как правильно написать, чтоб заработала программа?
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38650148
igr_ok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kira_006,

Я не стал писать в этой теме, какой код считаю правильным, т.к. это был бы оффтоп. Создайте новую тему и там я отвечу на ваши вопросы.

Я имел в виду объект Excel.Range который в вашем коде объявлен как ShtRange. Почему Вы ищете этот объект в DataTable- не понятно.
Поэтому лучше создайте новую тему и объясните, что именно вам требуется сделать, начиная не с нажатия кнопочки, а с общей постановки задачи.
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38703652
Kolu4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Решила использовать данные наработки для работы с Экселем и столкнулась с ошибкой, странно, что это раньше никто не увидел, наверно никто не использовал листы с количеством столбцов больше чем Z.
Метод
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
/// <summary>
		/// Переводит порядковый номер столбца в его буквенный эквивалент.
		/// </summary>
		public static string ParseColNum ( int ColNum )
		{
			StringBuilder sb = new StringBuilder ( );
			
			if ( ColNum <= 0 )  return "A";

			while ( ColNum != 0 )
			{
				sb.Append ( ( char ) ( 'A' + ( ColNum % 26 ) ) );
				ColNum /= 26;
			}

			return sb.ToString ( );
		}


Если запустить тестовый цикл, то метод возвращает вот такие значения

25---Z
26---AB
27---BB
28---CB
29---DB
30---EB
31---FB
32---GB
33---HB
34---IB
35---JB
36---KB
37---LB
38---MB
39---NB
40---OB
41---PB
42---QB
43---RB
44---SB
45---TB
46---UB
47---VB
48---WB
49---XB
50---YB
51---ZB
52---AC
53---BC
54---CC
55---DC

После столбца Z должен идти AA, а тут АВ. И вообще перед возвратом строку перевернуть следует, но это я смогла
Код: c#
1.
return new string(sb.ToString().Reverse().ToArray());


а вот сделать чтобы нормально метод работал у меня не получилось. Помогите пожалуйста!
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38703659
Kolu4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И свой метод пыталась создать,
Код: c#
1.
2.
3.
4.
5.
6.
public void SetValueCell(int row, int col, string value)
        {
            object o = WorkSheet.GetType().InvokeMember("Cells", BindingFlags.GetProperty,
                null, WorkSheet, new object[] { row, col });
            o.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, o, new object[] { value });
        }


чтобы избежать использования ParseColNum.
Так он тоже не работает, спотыкается на Value :-(
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38703661
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор, закрой этот беспощадный топик
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38703690
Kolu4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите меня дуру грешную!! Вот рабочий метод:
Код: c#
1.
2.
3.
4.
5.
6.
public void SetValueCell(int row, int col, string value)
        {
            object o = WorkSheet.GetType().InvokeMember("Cells", BindingFlags.GetProperty,
                null, WorkSheet, new object[] { row, col });
            o.GetType().InvokeMember("Item", BindingFlags.SetProperty, null, o, new object[] { row, col, value });
        }



МСУ,
Я конечно читала что InteropServices зло и Ваши советы про open xml sdk, но как быть с файлом Excel 2003 ?
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38703810
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolu4kaкак быть с файлом Excel 2003 ?
Два пути. Конвертировать его в более позднюю версию либо выкинуть на помойку.

http://support.microsoft.com/kb/924074/ru Корпорация Майкрософт прекратила поддержку Office 2003 8 апреля 2014 г.

Если вы используете Microsoft Office 2003 или Microsoft Office XP, вы можете загрузить и установить обновления, чтобы открывать, редактировать и сохранять файлы в формате более новых версий приложений Microsoft Office, а также файлы в формате Open XML.
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38704056
Фотография bured
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМодератор, закрой этот беспощадный топик
Да я сам вздрагиваю каждый раз
...
Рейтинг: 0 / 0
Функции для работы с Excel из C#
    #38754546
.AleXo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bured,
А как я то вздрагиваю


Она до сих пор живет
...
Рейтинг: 0 / 0
9 сообщений из 509, страница 21 из 21
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Функции для работы с Excel из C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]