Чтение данных из таблиц Excel C#

Многие материалы которые я здесь описываю, я размещаю для самого себя, в основном чтобы мучительно долго не вспоминать как же оно делается и вновь пытать поисковики запросами.
На сей раз опишу простой пример доступа и выборки данных из таблиц Excel в C#. На днях пришлось сим заниматься и в очередной раз вспоминать как оно делается попроще, для больших задач с кучей разных наворотов информации в интернете много. А надо то оно, как обычно бывает, совсем простенько чтоб решало поставленную задачу.

Итак приступим:

Первым делом добавляем в наш проект (Add References...)
Microsoft.Office.Interop.Excel

Подробнее

Drag And Drop и Scroll в TreeView C#

Не так давно пришлось делать DragAndDrop для TreeView и с удивлением обнаружил что на .NET не работает сама собой прокрутка (никак не работает, как выяснилось Microsoft признаёт что есть такая проблема, и предлагают её решать способом описанным ниже).

Итак сам способ.

Вопервых импортируем функцию из user32 — SendMessage
Для этого разумеется не забываем включить в проект (using System.Runtime.InteropServices;)

[DllImport("user32.dll")]
public static extern int SendMessage(
       int hWnd,      // handle to destination window
       uint Msg,       // message
       long wParam,  // first message parameter
       long lParam   // second message parameter
       );
Подробнее

Передача параметров между формами в C#

Часто возникает необходимость передать определённые параметры между формами в одном приложении, например значения каких либо переменных, или запустить какую либо процедуру или функцию в другой форме. Здесь я расскажу о двух методах решения этой задачи. Описанные методы использую сам, поэтому и публикую. Первый метод попроще, второй посложнее но более универсальный и с большими возможностями.

Способ №1
Передача параметров, используя связь между формами. (этот метод назвал я так сам — может есть и научное название).

Подробнее

Делаем программно DataGridViewComboBoxCell C#

В этой публикации я приведу пример программного добавления DataGridViewComboBoxCell.
Как программно заполнить DataGridView рассматривалось здесь.

Операцию по превращению выбранной ячейки DataGridView мы проделываем с существующей ячейкой, поэтому прежде нам необходимо будет создать эту ячейку при помощи предыдущей статьи, в нашем случае будем менять ячейки в колонке с индексом 1 и строке с индексом 1.

Превратить можно не любые ячейки такой метод работает 100% с текстовыми полями. Можно и не превращать а задать сразу. Но я исхожу в данном случае из того что нам не везде нужны ComboBox-ы и следовательно может возникнуть такая необходимость.

Подробнее

Hello World - первое приложение на мобильном компьютере C# .NET CF.

Здесь я приведу пример создания самого простого приложения для КПК на платформе .net cf.
Для начала хотелось бы отметить один момент, что в своей разработке вы конечно можете использовать эмуляторы устройств, но я этого делать очень не рекомендую. Многие задачи которые приходится решать невыполнимы при помощи эмуляторов, поэтому если есть желание разрабатывать что-то более или менее серьёзное, то стоит обзавестись мобильным устройством. Благо самое недорогое можно купить практически за копейки. Для этих целей нет необходимости покупать новый модный и навороченный девайс, достаточно будет покупки с рук старенького видавшего виды налодонника за сущие копейки.

Подробнее

DataGridView пример программного добавления ячеек C#.

Здесь я приведу пример программного добавления ячеек, а соответственно столбцов и строк.

Это может понадобится тогда, когда ну очень надо заполнить DataGridView и при этом совсем не нужен DataSet.

В моём случае, чаще всего это требуется когда необходимо заполнить какие либо параметры, которые могут отличаться для одного и того же объекта, скажем их просто может быть разное количество, вдобавок они могут быть разного типа, и т.п.

Подробнее

Используем Crystal Report в C#

В этой статье я приведу пример создания и использования отчёта Crystal Reports в Visual Studio.

Приведённый пример — это реально рабочий проект по подготовке к печати билетов на обычном лазерном принтере.

Начнём с того что нам потребуется источник данных поэтому вначале создадим проект в котором будем использовать наш отчёт и создадим источник данных который выгрузим в XML файл, для более простого и наглядного создания нового отчёта и его настройки.

Подробнее

Программное добавление событий для элементов управления в C#

Часто бывают случаи, когда создать событие для элементов управления необходимо программно, например когда нам надо выполнить определённые манипуляции с элементами и данными которые они содержат до того как начнут обрабатываться события на изменение выбранного значения, на клик мышкой, на изменение содержимого и многие другие.
Для этого целесообразно создавать события не в дизайнере формы а программно. Как это сделать я здесь и покажу на примере.

Пример будет получать источник данных в ComboBox, и по событию SelectedIndexChanged — будет выводить индекс выбранного элемента, вот это событие мы и создадим программно.

Итак приступаем:

DataSet ds = new DataSet(); //Создаем источник данных.
EventHandler handler; //Создаем делегат.
Подробнее

Работа со строками Strings в C#

Клаcc Strings включает множество методов сравнения, поиска и изменения строковых значений. Здесь я приведу список часто необходимых (лично мне) возможностей этого класса:

Empty — свойство определяющее пустая ли строка;
Compare() — сравнивает две строки;
CompareOrdinal() — позволяет сравнивать строки в независимости от региональных настроек;
Concat() — объединяет две и более строки в новую строку;
Copy() — Копирует исходную строку;

Подробнее

Передача параметров приложению в C#

   Собственно особых проблем с передачей параметров приложению при старте делается это в C# довольно просто, вот так:

static void Main( string[] args)
        {
            if (args.Length == 0)
            { MessageBox.Show("Нет параметров"); }
            else
            { MessageBox.Show("1"); }

            
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new FormMain());

        }


Проблема одна лишь в том, что в С# в рамках проекта может быть не один такой Main и чтобы было ясно какому из них должны быть переданы параметры, необходимо указать объект в: Project > Properties > Application > Startup Object.

Вот и всё!

Подробнее