Создание собственного элемента на примере таблицы на C# для Windows Form
В данной статье я опишу создания своих элементов для C# Windows Form.
Для примера буду создавать таблицу со всем функционалом DataGridView. Позже перейдем на свои элементы. Создание первого элемента разобьем на несколько уроков. В данном уроке произведем от рисовку таблицы, а также: создание столбцов, строк, ячеек.
Для написания будем использовать .Net FrameWork 4.7.x, среда разработки Visual Studio 2019.
В первую очередь создадим обычный проект Windows Form. Думаю не нужно это показывать. А уже потом создаем проект «Библиотека элементов управления Windows Form»(Назовем его CustomControl).
Далее у нас будет создан файл UserControl.cs. Удаляем его и создаем обычный класс TableCustoms.cs.Наш класс будет наследоваться от класса Control.
Далее в этом же файле создадим еще несколько классов, а именно:Column,Row,Cell. Рассмотрим каждый по отдельности. Начнем с Column:
Класс Cell(Для поддержки копирования добавляем интерфейс ICloneable):
Теперь настроим наш основной класс TableCustoms:
Для того, чтобы у нас были полосы прокрутки нужно использовать ScrollableControl, поэтому создадим класс PanelTable наследуем ScrollableControl и помещаем его на Control(в следующем уроке объясню почему создаем два разных контрола, а не используем сразу ScrollableControl):
После этого «Пересобираем проект» элемента и добавляем элемент на форму(в основном проекте):
Пошаговое руководство. Создание dataTable в конструкторе наборов данных
В этом пошаговом руководстве объясняется, как создать DataTable (без TableAdapter) с помощью конструктора наборов данных. Сведения о создании таблиц данных, включая TableAdapters, см. в разделе «Создание и настройка TableAdapters».
Создание приложения Windows Forms
В Visual Studio в меню Файл выберите пункты Создать>Проект.
Разверните visual C# или Visual Basic на панели слева, а затем выберите «Рабочий стол Windows«.
В средней области выберите тип проекта приложения Windows Forms .
Назовите проект DataTableWalkthrough и нажмите кнопку «ОК«.
Проект DataTableWalkthrough создается и добавляется в обозреватель решений.
Добавление нового набора данных в приложение
В меню Проект выберите команду Добавить новый элемент.
Откроется диалоговое окно Добавление нового элемента.
На панели слева выберите «Данные«, а затем выберите DataSet в средней области.
Выберите Добавить.
Visual Studio добавляет в проект файл с именем DataSet1.xsd и открывает его в конструкторе наборов данных.
Добавление новой dataTable в набор данных
Перетащите dataTable с вкладки DataSetпанели элементов в конструктор наборов данных.
Таблица с именем DataTable1 добавляется в набор данных.
Щелкните заголовок строки DataTable1 и переименуйте ее Music .
Добавление столбцов в Таблицу данных
Щелкните правой кнопкой мыши таблицу «Музыка «. Наведите указатель на пункт «Добавить» и нажмите кнопку «Столбец«.
Присвойт столбцу SongID имя.
В окне Свойства присвойте свойству DataType значение System.Int16.
Повторите этот процесс и добавьте следующие столбцы:
Установка первичного ключа для таблицы
Все таблицы данных должны иметь первичный ключ. Первичный ключ однозначно идентифицирует определенную запись в таблице данных.
Чтобы задать первичный ключ, щелкните правой кнопкой мыши столбец SongID и выберите команду «Задать первичный ключ«. Рядом со столбцом SongID появится значок клавиши.
Сохранение проекта
Чтобы сохранить проект DataTableWalkthrough , в меню «Файл » выберите «Сохранить все«.
Создать Excel в visual studio c#
Давайте научимся быстро и просто создавать и записывать файлы Excel с помощью visual studio c#. Наше самое простое приложение Windows Forms будет брать из текстбокса текст и заносить его в первую ячейку. Статья написана специально для Сергея =).
Начать необходимо с подключения библиотеки Microsoft.Office.Interop.Excel. Выглядеть это должно так:
Если у вас при открытии обозревателя решений – Ссылки – правая кнопка – Добавить ссылку – Сборки – в списке нет Microsoft.Office.Interop.Excel, то добавьте её через Nuget. Проект – управление пакетами NuGet – в строке поиска Excel:
Теперь создайте новый проект Windows Forms и на форму закиньте текстбокс и кнопку. На кнопки кликните два раза, откроется исходный код. В самом верху допишите следующее:
А в методе button1_Click замените так:
Вот, собственно говоря и все. Текст из текстбокса запишется в ячейку A1. Обратите внимание, что папка temp на диске уже должна существовать.
Дополнение. Прочитать первую ячейку
Это тоже просто:
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
заметки, си шарп, excel
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
заметки, си шарп, excel
DataGridView с фильтрацией как в Excel
Как мне сделать в WinForms Таблицу DataGridView с фильтрацией, чтобы нажимая правой кнопкой мыши по столбцу открывалось контекстное меню и предлагало выбрать или ввести параметры для фильтра. Прямо Как в Excel.
Есть вики и там же готовая dll-ка.
1) Подключаем DataGridViewWithFilter.dll;
2) DataGridViewWithFilter наследник DataGridView:
В DataGridViewWithFilter.dll четыре класса:
ColumnFilterClickedEventArg
Событие нажатия на кнопку фильтрации:
DataGridFilterHeader
Наследик DataGridViewColumnHeaderCell, тут мы добавим в заголовок кнопку фильтрации и привяжем событие:
FilterStatus
В таком виде будем хранить состояние фильтров:
DataGridViewWithFilter
Наследник DataGridView, тут и происходит вся магия:
Здесь подробно описано как создать фильтр Drop-Down Filter List for a DataGridView. Но при больших данных (Более 20,000 уникальных записей) немного тормозит.
Добавить компонент контекстного меню. Создать в нем меню. Привязать компонент к DataGridView. Назначить действия при выборе соответствующих меню 🙂
Особенности: если прям как в Excel -то надо обработать нажатие правой кн.мышки, чтоб выделялась ячейка на которой находится курсор. Ну и в функциях уже брать выделенную колонку, строку или что там вам надо из грида и выполнять действия.
PS: сама фильтрация происходит не в гриде, а в компоненте который поставляет данные для отображения в гриде (к примеру BindingSource, который привязан к таблице DataTable)
Name already in use
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
WinForms Excel Library (.NET Component)
- .NET Framework 4.0+ or .NET Core 3.1+ (must be present on target machine)
- MS Excel 2003+ (must be present on target machine)
- Visual Studio 2010+ (for .NET Framework) or Visual Studio 2019+ (for .NET Core)
WinForms Excel Library allows to host MS Excel interface in Windows Forms application as a user control in order to display and edit one or more tables of data. The Excel application is started in different process, but the interface is fully integrated into your application as for any usual control. Basically, it works like DataGridView, but enables user to take advantage of various data processing and visualization capabilities of MS Excel, which might be useful in scientific, engineering or financial applications. The library interacts with Excel via Primary Interop Assemblies. Currently implemented functionality:
- Filling data from files, DataTable objects or manually on cell-by-cell basis;
- Displaying and editing one or several tables in your form in Excel GUI;
- Getting data back as DataTable objects or getting the content of specific cells;
- Saving data into file;
- Adding charts;
- Manipulating worksheets: adding, deleting, reordering, changing names, changing active sheet;
- Showing/hiding Excel formula bar and status bar;
- Direct access to Excel interoperability interfaces via Application object.
The library distribution package contains demo application project (Visual Studio 2010)
See documentation for more information.
System.Runtime.InteropServices.COMException (HRESULT 0x800A03EC) when trying to set cell content. This error happens when you try to programmatically set the content of the cell that user is currently editing (i.e., when user double clicked the cell and Excel entered edit mode on it, which displays input caret inside cell and enables user to type text). The only current workaround is to catch exception an ask user to exit from edit more by single-clicking on some other cell.
About
Library that allows to host MS Excel interface in Windows Forms application as a user control
Создать Excel в visual studio c#
Давайте научимся быстро и просто создавать и записывать файлы Excel с помощью visual studio c#. Наше самое простое приложение Windows Forms будет брать из текстбокса текст и заносить его в первую ячейку. Статья написана специально для Сергея =).
Начать необходимо с подключения библиотеки Microsoft.Office.Interop.Excel. Выглядеть это должно так:
Если у вас при открытии обозревателя решений – Ссылки – правая кнопка – Добавить ссылку – Сборки – в списке нет Microsoft.Office.Interop.Excel, то добавьте её через Nuget. Проект – управление пакетами NuGet – в строке поиска Excel:
Теперь создайте новый проект Windows Forms и на форму закиньте текстбокс и кнопку. На кнопки кликните два раза, откроется исходный код. В самом верху допишите следующее:
А в методе button1_Click замените так:
Вот, собственно говоря и все. Текст из текстбокса запишется в ячейку A1. Обратите внимание, что папка temp на диске уже должна существовать.
Дополнение. Прочитать первую ячейку
Это тоже просто:
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
заметки, си шарп, excel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 |
using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication1 { public partial class Form1 : Form { List<char> ABC; //счетчик и "сбрасыватель" счетчика int abcIt = 0; int abc = 26; //26 букв в англ. алфавите ;) public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { ABC = new List<char>(); for (int i = 65; i < 91; i++) //ABCDEF... англ. алфавит { ABC.Add((char)i); } } private void button1_Click(object sender, EventArgs e) //Загружаем данные в dataGridView с Excel файла и вырисовываем dataGridView { bool Load = true; CloseExcel(); bool isSelected = false; openFileDialog1.InitialDirectory = "C:"; openFileDialog1.Title = "Выбрать файл"; openFileDialog1.FileName = ""; openFileDialog1.Filter = "Файлы xlsx|*.xlsx"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { Prop.Path = openFileDialog1.FileName; isSelected = true; Prop.FileName = openFileDialog1.SafeFileName; } else { MessageBox.Show("Файл не выбран"); } if (isSelected) //Файл выбран, начинаем загрузку в dataGridView { this.Cursor = Cursors.AppStarting; //Меняем вид курсора пока происходит загрузка из файла на dataGridView. dataGridView1.RowHeadersWidth = 60; //Ширина столбца, заголовков строк abcIt = 0; abc = 26; Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.Application(); var workbooks = xlApp.Workbooks; xlWorkBook = workbooks.Open(Prop.Path, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0); var worksheets = xlWorkBook.Worksheets; xlWorkSheet = (Excel.Worksheet)worksheets.get_Item(1); //Счетчики int NullRows = 0; int NullColums = 0; int index = 1; //Считаем сколько у нас заполненных строк и столбцов в excel файле. Считать будем по заголовкам. Все остальное в расчет не брал. //Количество строк. Подсчет ведется для создания количества строк на dataGridView. for (int x = 1; x < 256; x++) //То есть больше 256х256 он искать не будет. Но и лишние - пустые ячейки он считать не будет. { if (xlWorkSheet.Cells[x, index].Value == null) //Если ячейка пустая, то наш счетчик считает до 5 и выходит из цикла. (Вспомнилась считалочка, "Я считаю до пяти, не могу до десяти") { NullRows++; if (NullRows == 5) { Prop.X = x - 5; if (Prop.X > 0) //Проверка на вертикальные заголовки. Если есть текст, то загружаем его в dataGridView { break; } else { x = 0; NullRows = 0; //Обнуляем счетчики, для дальнейшего подсчета index++; //Увеличиваем индекс на 1, для просмотра строк, следующих пяти столбцов if (index == 5) //Если же 5 строк пяти столбцов оказались без текста, то... { MessageBox.Show("Файл либо пустой, либо поиск рассчитан на определенное расположение текста в Excel файле. Работа с данным файлом, в данное версии программы, прекращена"); index = 1; Load = false; break; } } } } else //Если же после пустых ячеек(до 5), есть еще заполненная ячейка, то "обнуляем" наш счетчик. { if (NullRows >= 1) { NullRows = 0; } } } //Количество столбцов. Подсчет ведется для создания количества столбцов на dataGridView. for (int y = 1; y < 256; y++) { if (xlWorkSheet.Cells[1, y].Value == null) { NullColums++; if (NullColums == 5) { Prop.Y = y - 5; if (Prop.Y > 0) //Проверка на вертикальные заголовки(надеюсь понятно, что это такое;)). Если есть текст, то загружаем его { break; } else { y = 0; NullColums = 0; index++; if (index == 5) { MessageBox.Show("Файл либо пустой, либо поиск рассчитан на определенное расположение текста в Excel файле. Работа с данным файлом, в данное версии программы, прекращена"); index = 1; Load = false; break; } } } } else { if (NullColums >= 1) { NullColums = 0; } } } if (Load) { //Рисуем dataGridView1 dataGridView1.RowCount = Prop.X; dataGridView1.ColumnCount = Prop.Y; //названия/имена "x" и "y" малость перепутаны ;) for (int x = 0; x < Prop.Y; x++) { if ((string)dataGridView1.Columns[x].HeaderCell.Value == "") //Если вместо "АА" "АВ" и тд. будет "", то... { //Если дойдем до "AZ", то после следующей "махинации", следующий заголовок столбца станет "BA"..."BZ","CA"..."CZ" и тд. if ((x - 26) == 26) { abcIt++; abc += 26; } dataGridView1.Columns[x].HeaderCell.Value = ABC[abcIt].ToString() + ABC[x - abc].ToString(); //Пишем в заголовки столбцов (AA AB AC AD.. DA DB... ZZ дальше ZZ выдаст ошибку, индекс за пределами массива. Если расчет верен, ZZ будет столбцом № 17602 в Excel файле) } for (int y = 0; y < Prop.X; y++) { if (dataGridView1.Rows[y].HeaderCell.Value == null) //проверка на null - чтобы лишний раз не записывать одно и то же число в одну и ту же ячейку { dataGridView1.Rows[y].HeaderCell.Value = (y + 1).ToString(); //Записываем в dataGridView, в строковые заголовки, значения от 1 до Prop.Y } //Записываем в dataGridView dataGridView1[x, y].Value = xlWorkSheet.Cells[y + 1, x + 1].Value; } } } //Закрываем документы xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); this.Cursor = Cursors.Default; //Меняем вид курсора в первоисходное положение } } private void button2_Click(object sender, EventArgs e) //Сохраняем в Excel файл { CloseExcel(); bool isSave = false; saveFileDialog1.InitialDirectory = "C:"; saveFileDialog1.Title = "Сохранить в файл"; saveFileDialog1.FileName = ""; saveFileDialog1.Filter = "Файлы xlsx|*.xlsx"; saveFileDialog1.FileName = Prop.FileName; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { Prop.Path = saveFileDialog1.FileName; isSave = true; } else { MessageBox.Show("Файл не сохранен"); } if (isSave) { //Если файл не существует, то мы создадим его if (!File.Exists(Prop.Path)) { Excel.Application WorkExcel = new Excel.Application(); Excel.Workbook WorkBook = WorkExcel.Workbooks.Add(); // создаем книгу WorkBook.SaveAs(Prop.Path);//сохранить Excel файл WorkBook.Close(); WorkExcel.Quit(); } this.Cursor = Cursors.AppStarting; //Меняем вид курсора пока происходит сохранение в файл. Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Excel.Application(); var workbooks = xlApp.Workbooks; xlWorkBook = workbooks.Open(Prop.Path, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0); var worksheets = xlWorkBook.Worksheets; xlWorkSheet = (Excel.Worksheet)worksheets.get_Item(1); Prop.X = dataGridView1.Columns.Count; Prop.Y = dataGridView1.Rows.Count; //Сохраняем в Excel файл. for (int x = 0; x < Prop.X; x++) { for (int y = 0; y < Prop.Y; y++) { xlWorkSheet.Cells[y + 1, x + 1].Value = dataGridView1[x, y].Value; } } xlWorkBook.Save(); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); this.Cursor = Cursors.Default; MessageBox.Show("Сохранено!"); } } void CloseExcel() { int proc = 0; bool OK = false; bool Cancel = false; foreach (Process item in Process.GetProcesses()) { if (item.ProcessName == "EXCEL") { proc++; if (proc > 0 && !Cancel) { //Чтобы не повторяться, то есть по несколько раз не выдавать одно и тоже сообщение if (!OK) { var result = MessageBox.Show("Для корректной работы программы процесс Microsoft Excel нужно завершить. При завершении все не сохраненные файлы будут потеряны. Прежде чем завершить работу процесса, сохраните данные. Все ровно завершить?", "Обнаружен включенный процесс Microsoft Excel", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (result == DialogResult.OK) { OK = true; } else { Cancel = true; } } if (OK) { item.Kill(); } } } if (Cancel) { break; } } } } } |
как перебрать таблицу exel что б можно показать ее например в listView или DataGridView?
задан 26 авг 2021 в 12:09
1
Рекомендую использовать сторонние библиотеки, поддерживающие формат xlsx.
Использовать Interop не рекомендую (в основе его лежит медленный COM и требуется наличие MS Office).
Использовал библиотеку EPPlus. Она бесплатна для некоммерческого использования.
Позволяет читать ячейки, а можно загрузить диапазон ячеек в DataTable.
Добавьте nuget пакет EPPlus в ваше приложение, а далее используйте вышеуказанные примеры кода для чтения Excel.
ответ дан 26 авг 2021 в 16:44
Алексей ОбуховАлексей Обухов
1,21310 серебряных знаков12 бронзовых знаков
Создание собственного элемента на примере таблицы на C# для Windows Form
В данной статье я опишу создания своих элементов для C# Windows Form.
Для примера буду создавать таблицу со всем функционалом DataGridView. Позже перейдем на свои элементы. Создание первого элемента разобьем на несколько уроков. В данном уроке произведем от рисовку таблицы, а также: создание столбцов, строк, ячеек.
Для написания будем использовать .Net FrameWork 4.7.x, среда разработки Visual Studio 2019.
В первую очередь создадим обычный проект Windows Form. Думаю не нужно это показывать. А уже потом создаем проект «Библиотека элементов управления Windows Form»(Назовем его CustomControl).
Далее у нас будет создан файл UserControl.cs. Удаляем его и создаем обычный класс TableCustoms.cs.Наш класс будет наследоваться от класса Control.
Далее в этом же файле создадим еще несколько классов, а именно:Column,Row,Cell. Рассмотрим каждый по отдельности. Начнем с Column:
Класс Cell(Для поддержки копирования добавляем интерфейс ICloneable):
Теперь настроим наш основной класс TableCustoms:
Для того, чтобы у нас были полосы прокрутки нужно использовать ScrollableControl, поэтому создадим класс PanelTable наследуем ScrollableControl и помещаем его на Control(в следующем уроке объясню почему создаем два разных контрола, а не используем сразу ScrollableControl):
После этого «Пересобираем проект» элемента и добавляем элемент на форму(в основном проекте):
Создать Excel в visual studio c#
Давайте научимся быстро и просто создавать и записывать файлы Excel с помощью visual studio c#. Наше самое простое приложение Windows Forms будет брать из текстбокса текст и заносить его в первую ячейку. Статья написана специально для Сергея =).
Начать необходимо с подключения библиотеки Microsoft.Office.Interop.Excel. Выглядеть это должно так:
Если у вас при открытии обозревателя решений – Ссылки – правая кнопка – Добавить ссылку – Сборки – в списке нет Microsoft.Office.Interop.Excel, то добавьте её через Nuget. Проект – управление пакетами NuGet – в строке поиска Excel:
Теперь создайте новый проект Windows Forms и на форму закиньте текстбокс и кнопку. На кнопки кликните два раза, откроется исходный код. В самом верху допишите следующее:
А в методе button1_Click замените так:
Вот, собственно говоря и все. Текст из текстбокса запишется в ячейку A1. Обратите внимание, что папка temp на диске уже должна существовать.
Дополнение. Прочитать первую ячейку
Это тоже просто:
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
заметки, си шарп, excel
Таблицы по типу Excel в Windows Forms
как преобразовать TimeSpan к нужному типу? Windows Forms
timer.Interval = new TimeSpan(hours.Value, min.Value, sec.Value); вот, пишет, что не удаётся.
c++/windows forms считывание данных из excel
Всем привет! Необходимо написать приложение windows forms на с++, помогите считать данные из файла.
Конфликт Excel и System.Windows.Forms
Всем доброго времени суток! Столкнулся со следующей проблемой: компилятор выдаёт ошибку .
Работа с Excel в Visual C++ -> Windows Forms
Как создать/открыть Excel-файл из Visual C++ -> Windows Forms и с ним работать?
Сообщение было отмечено shapovalov A как решение
Решение
Вывод таблицы Windows Forms Application
Доброго времени суток. Использую VS 2008, проект Windows Forms Application. В каком элементе.
Элемент для таблицы Windows Forms
Нужно создать табличку с заголовком, в которой будет два столбца. В первом — textbox, во втором -.
Windows Forms x Access. Связанные таблицы в DataGridView
В Access есть функция показа содержимого, если таблицы связаны. Как сделать то же самое.
Сложности с открытием документа Excel из приложения Windows Forms
Файл xls хранится в ресурсах программы, сперва записываю в файл на локальный диск, затем открываю.
Как элементы Windows Forms использовать для грамотного расположения двух таблиц Windows Forms?
Как элементы Windows Forms использовать для грамотного расположения двух таблиц Windows Forms? .