C# 如何使用c实现excel文件的映射#
我想对excel文件进行映射,但要以某种方式使用列。 例如,我有一个exel文件,其中必须引用第二列(excel文件),sql数据库有一列 这是我使用的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
表单
:
我已经完成了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上)?好的,我误解了你的问题,现在我知道你想要什么了。更新我的答案。这是做我需要的事情的最好方式吗?