hungspkt123 Ответов: 2

Копирование данных из базы данных access на рабочий лист excel с помощью языка C#


Я хочу скопировать данные из файла базы данных Access в рабочий лист Excel. Я использую OLEDBConnection, но не знаю, как скопировать все данные из таблицы Access для вставки в ячейки A2 в excel.

Имя моей таблицы-это луч силы, он имеет 10 столбцов: история,балки, CaseCombo, станция, П, В2, В3, Т, М2, М3.

Я не знаю, где это неправильно. Вот мой код:

private void btnInput_Click(object sender, RibbonControlEventArgs e)
       {
           OpenFileDialog MDB = new OpenFileDialog();
           string sFile;
           MDB.Filter = "Access files|*.mdb";
           MDB.AddExtension = true;
           MDB.CheckPathExists = true;
           MDB.Title = "Choose Your Input File";


           if (MDB.ShowDialog() == DialogResult.OK)
           {
               sFile = MDB.FileName;
               //MessageBox.Show(sFile);

               try
               {
                   OleDbConnection MyConnection  = new OleDbConnection();
                   OleDbCommand MyCommand = new OleDbCommand();
                   MyConnection = new  OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sFile);
                   MyConnection.Open();
                   MessageBox.Show("Mở kết nối thành công");

                   string mySQL = "SELECT [Story],[Beam], [CaseCombo], [Station], P, V2, V3, T, M2, M3 " + "From [Beam Forces]";
                   OleDbCommand cmd = new OleDbCommand(mySQL, MyConnection);
                   MessageBox.Show(mySQL);
                   OleDbDataReader dr = cmd.ExecuteReader();
                   DataTable dtb = new DataTable();
                   WorkSheet curSheet = Globals.ThisAddIn.Application.ActiveSheet;


                   ????????????????????????

                   MyConnection.Close();
               }
               catch (Exception ex)
               {
                   MessageBox.Show("Error: "+ ex);
               }

           }


Что я уже пробовал:

Я попытался найти какую-нибудь справку в MSDN, но не смог.

Richard MacCutchan

Попробуйте поискать "excel c#", и вы найдете много примеров.

2 Ответов

Рейтинг:
2

Bryian Tan

Вы также можете использовать EPPlus. Он очень прост в использовании и совершенно бесплатен. EPPlus-это библиотека .net, которая читает и записывает файлы Excel 2007/2010 с использованием формата Open Office Xml (xlsx). Вот пример проекта о том, как это сделать.

[EPPlus.DataTableToExcel]


Рейтинг:
1

Graeme_Grant

Вы можете сделать это прямо в Excel. Зачем нужна внешняя программа? Гораздо более эффективный.

Быстрый поиск в Google: запрос доступа к базе данных из excel vba[^] выдает почти 1/2 миллиона результатов о том, как это сделать с помощью примера кода, например:

* Запуск запросов доступа из Excel с помощью VBA ~ My Engineering World[^]
* VBA Express: Excel-запрос доступа к базе данных с помощью ADODB и запись результатов в электронную таблицу[^]
* http://www.globaliconnect.com/excel_new/[^]
* Excel VBA для извлечения данных из базы данных Access-YouTube[^]
* Excel VBA для получения данных из базы данных Access[^]
* и многое-многое другое![^]

Однако если вы должны сделать все это в своем приложении, то: как записать данные из dataset в excel на языке c#[^]