|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Запись из dataGridView в файл екселя |
|
C/C++ - Запись из dataGridView в файл екселя
|
Новый участник Сообщения: 19 |
Профиль | Отправить PM | Цитировать
Добрый день. Недавно начал учить C#, вот решил написать простенький телефонный справочник.
Все шло гладко, пока дело не дошло до сохранения в файл. 1) В чем собственно проблема: При нажатии на кнопку, которая должна была записать все в файл 1.xls, выскакивает сообщение: "Не совпадает число значений запроса и число результирующих полей." И выделяет строку "cmd.ExecuteNonQuery();" 2) Еще раз через раз выскакивает ошибка, что якобы "Процесс не может получить доступ к файлу "1.xls", так как этот файл используется другим процессом." Сам код: private void button5_Click(object sender, EventArgs e) { string fileName = "1.xls"; // путь файла System.IO.File.Copy("1.xls", fileName, true); // копируем файл, шаблон файла должен лежать рядом с *.exe (1.xls) string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + fileName + "';Extended Properties=Excel 8.0;"; // строка подключения using (OleDbConnection ole = new OleDbConnection(connectionString)) // используем OleDb { try { ole.Open(); for (int i = 0; i < dataGridView1.Rows.Count; i++) { var cmd = new OleDbCommand("INSERT INTO [Лист1$] VALUES ('" + dataGridView1.Rows[0].Cells[0].Value + "','" + dataGridView1.Rows[0].Cells[1].Value + "','" + dataGridView1.Rows[0].Cells[2].Value + "',' ')", ole); cmd.Connection = ole; cmd.ExecuteNonQuery(); // вставляем данные в лист1 файла - filename cmd.Dispose(); } } finally { ole.Close(); } } Строка для начала пока одна. Когда разберусь с сохранением одной строки, то тогда додумаю уже как записать и остальные. 3) Если не трудно, то подскажите, как мне из этого же файла заполнить dataGridView (обратная операция до вышеописанной). |
|
Отправлено: 19:41, 28-02-2012 |
Новый участник Сообщения: 19
|
Профиль | Отправить PM | Цитировать Поверить не могу, что заработало)
Осталось только понять как сделать так, чтобы файл сохранялся, а не открывался. И заполнение datagridview`a данными из этого файла) Спасибо большое. |
Отправлено: 00:29, 29-02-2012 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать вот пример, заполняет datagridview данными из этого файла
private void button1_Click(object sender, EventArgs e) { string str; int r; int c; string filename = "1.xls"; Microsoft.Office.Interop.Excel.Application ExcelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel._Workbook ExcelWorkBook; Microsoft.Office.Interop.Excel.Worksheet ExcelWorkSheet; Microsoft.Office.Interop.Excel.Range ExcelRange; ExcelWorkBook = ExcelApp.Workbooks.Open(filename); ExcelWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ExcelWorkBook.Worksheets.get_Item(1); ExcelRange = ExcelWorkSheet.UsedRange; for (r = 1; r <= ExcelRange.Rows.Count; r++) { dataGridView1.Rows.Add(1); for (c = 1; c <= 2; c++) { str = Convert.ToString((ExcelRange.Cells[r, c] as Microsoft.Office.Interop.Excel.Range).Value2); dataGridView1.Rows[r - 1].Cells[c - 1].Value = str; } } ExcelWorkBook.Close(); ExcelApp.Quit(); releaseObject(ExcelWorkSheet); releaseObject(ExcelWorkBook); releaseObject(ExcelApp); } private void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; MessageBox.Show("Unable to release the object " + ex.ToString()); } finally { GC.Collect(); } } |
Отправлено: 00:51, 29-02-2012 | #12 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Определение IP и запись в файл | aggressor_ | Программирование и базы данных | 53 | 19-02-2019 20:25 | |
Assm - [решено] Запись в файл | pogo | Программирование и базы данных | 7 | 24-11-2010 09:15 | |
C/C++ - [решено] запись в файл | Viruss | Программирование и базы данных | 3 | 05-08-2010 18:27 | |
запись в файл на Perl | koresaram | Вебмастеру | 3 | 16-03-2006 13:46 | |
файл екселя на удаленном w2kServer | fima | Хочу все знать | 3 | 21-01-2004 20:23 |
|