Передача данных Excel в C# настольное приложение - PullRequest
0 голосов
/ 16 июня 2020

Я хочу передать информацию из книги Excel в приложение C#, которое уже открыто пользователем.

В настоящее время у нас есть рабочая книга Excel со списком обзоров процедур, которые кратко описаны как ценности. Например, проход - 1, второстепенный - 0, а сбой - -1.

Это указано на листе с двумя столбцами, именем процедуры и значением прохода;

| Процедура | Значение

| ------------ | ------------

| Тест 1 | 1

| Тест 2 | 0

| Тест 3 | -1

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

Есть ли способ чтобы создать канал, который позволит передавать данные в приложение C#, например, при нажатии кнопки?

1 Ответ

0 голосов
/ 16 июня 2020

Может попробовать:

    Microsoft.Office.Interop.Excel.Application _excelApp = new Microsoft.Office.Interop.Excel.Application();
                    _excelApp.Visible = false;
                    string fileName = String.Empty;
                    OpenFileDialog ofd = new OpenFileDialog();
                    if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        fileName = ofd.FileName;



                    //open the workbook
                    Microsoft.Office.Interop.Excel.Workbook workbook = _excelApp.Workbooks.Open(fileName,
                        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                        Type.Missing, Type.Missing);
                    //select the first sheet or tell it the name of the sheet you want        
                    if ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.get_Item("Worksheet") == null)
                    {
                        MessageBox.Show("Not a valid workbook");
                    }
                    else
                    {
                        Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.get_Item("Worksheet");  
//select how you want data to be transferred into your c# application?
                        tTag.Text = worksheet.get_Range("B2", System.Reflection.Missing.Value).Text;


                        //clean up stuffs
                        workbook.Close(false, Type.Missing, Type.Missing);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);

                        _excelApp.Quit();
                        System.Runtime.InteropServices.Marshal.FinalReleaseComObject(_excelApp);
                    }
                    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...