C# 如何使用c实现excel文件的映射#

C# 如何使用c实现excel文件的映射#,c#,sql,excel,C#,Sql,Excel,我想对excel文件进行映射,但要以某种方式使用列。 例如,我有一个exel文件,其中必须引用第二列(excel文件),sql数据库有一列 这是我使用的表单: 我已经完成了sql搜索,我只是想知道如何在组合框中输入excel文件中列的名称 这是我用来搜索excel文件的代码: using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xls", ValidateNames = tr

我想对excel文件进行映射,但要以某种方式使用列。 例如,我有一个exel文件,其中必须引用第二列(excel文件),sql数据库有一列

这是我使用的
表单

我已经完成了sql搜索,我只是想知道如何在组合框中输入excel文件中列的名称

这是我用来搜索excel文件的代码:

        using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xls", ValidateNames = true })
        {
            DataSet result;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read);
                IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(fs);
                reader.IsFirstRowAsColumnNames = true;
                result = reader.AsDataSet();
                comboBox1.Items.Clear();
                foreach (DataTable dt in result.Tables) comboBox1.Items.Add(dt.TableName);
                reader.Close();

                string ConecçãoDB = ConfigurationManager.ConnectionStrings["ConecçaoDB"].ConnectionString;
                string Table = ConfigurationManager.AppSettings["table"];

                string ssqltable = Table;

                string ssqlconnectionstring = ConecçãoDB;

                filename = ofd.FileName;
                MessageBox.Show(Convert.ToString(filename));
                var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\"";
                var conexao = new System.Data.OleDb.OleDbConnection(connectionString);
                var sql = "SELECT * FROM [" + comboBox1.SelectedText + "$]";
                string sclearsql = "delete from " + ssqltable;
            }
        }

根据您的最新评论更新我的答案,因为我误解了您的需要

您需要访问Excel对象模型,然后才能完全轻松地控制Excel数据

有关可靠而简单的答案,请参阅:

使用建议的代码时,请确保为代码添加以下引用:

using Microsoft.Office.Interop.Excel;
记住这里提供的答案将列名放在字符串的一般列表中

之后,您必须将其绑定到组合框:

BindingSource bs = new BindingSource();
bs.DataSource=columnNames ;
comboBox1.DataSource = bs;

您有什么具体的问题-实际的数据绑定到组合框本身?到目前为止,您采取了哪些步骤来尝试这一点,或者您遇到了什么问题?@LightCC我一直在向ComboBox添加数据,“在这里添加代码以从数据库填充数据集ds”是什么意思?假设您的Excel文件有3列A、B、C,在Combox中,您希望看到A、B、C(在C#Webform上)?好的,我误解了你的问题,现在我知道你想要什么了。更新我的答案。这是做我需要的事情的最好方式吗?