首页 > 解决方案 > 将 Excel 数据传递给 C# 桌面应用程序

问题描述

我希望将 excel 工作簿中的信息传递到用户已经打开的 C# 应用程序中。

目前,我们有一个 Excel 工作簿,其中包含总结为值的程序审查列表。例如,通过为 1,次要为 0,失败为 -1。

这在一张包含两列的表格中列出,即过程名称和传递值;

| 程序 | 价值

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

| 测试 1 | 1

| 测试 2 | 0

| 测试 3 | -1

我想获取这张表并将其传递给我们的报告应用程序,以便可以在前端对其进行操作,然后将其发送到数据库。

有什么方法可以创建一个允许将数据传递给 C# 应用程序的管道,例如单击按钮时?

标签: c#excelvba

解决方案


也许试试这个:

    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);
                    }
                    }

推荐阅读