C# 从excel导入特定数据

C# 从excel导入特定数据,c#,excel,C#,Excel,我有两个excel文件,都是特定格式的。我需要从他们每个人那里获取数据,同时在我的程序上显示所有数据 问题是,我的数据在特定的单元格中 我的第一个数据在C2单元 第二个数据位于文件底部附近。每个文件中的列仍然相同,但行不同。所以我必须写一个循环来找到那一行。也许如果(row-1==“”)像这样的代码可以写在for循环中 以下是我目前的代码: public partial class Form1 : Form { FolderBrowserDialog fbd = new Folder

我有两个excel文件,都是特定格式的。我需要从他们每个人那里获取数据,同时在我的程序上显示所有数据

问题是,我的数据在特定的单元格中

  • 我的第一个数据在C2单元
  • 第二个数据位于文件底部附近。每个文件中的列仍然相同,但行不同。所以我必须写一个循环来找到那一行。也许如果(row-1==“”)像这样的代码可以写在for循环中
以下是我目前的代码:

public partial class Form1 : Form
{
    FolderBrowserDialog fbd = new FolderBrowserDialog();
    String[] genel = new String [1000];

    public Form1()
    {
        InitializeComponent();
        this.textBox1.ReadOnly = true;
    }

    private void btnGozat_Click(object sender, EventArgs e)
    {

        if (fbd.ShowDialog() == DialogResult.OK)
        {
            checkedListBox1.Items.AddRange(Directory.GetFiles(fbd.SelectedPath).Select(x => Path.GetFileName(x)).ToArray());
        }

        textBox1.Text =fbd.SelectedPath;

        String[] allfiles = System.IO.Directory.GetFiles(fbd.SelectedPath, "*.*", System.IO.SearchOption.AllDirectories);

        genel = allfiles;
    }

    private void btnAnaliz_Click(object sender, EventArgs e)
    {
        String[] checkedFiles = new String[checkedListBox1.Items.Count];

        int count;
        int checkF = 0;

        for (count = 0; count < checkedListBox1.Items.Count; count++)
        {
            if (checkedListBox1.GetItemChecked(count))
            {
                checkedFiles[checkF] = genel[count];
                checkF++;
            }      
        }
    }
}
公共部分类表单1:表单
{
FolderBrowserDialog fbd=新建FolderBrowserDialog();
字符串[]genel=新字符串[1000];
公共表格1()
{
初始化组件();
this.textBox1.ReadOnly=true;
}
私有void btnGozat_单击(对象发送者,事件参数e)
{
如果(fbd.ShowDialog()==DialogResult.OK)
{
checkedListBox1.Items.AddRange(Directory.GetFiles(fbd.SelectedPath).Select(x=>Path.GetFileName(x)).ToArray();
}
textBox1.Text=fbd.SelectedPath;
字符串[]allfiles=System.IO.Directory.GetFiles(fbd.SelectedPath,“**”,System.IO.SearchOption.AllDirectories);
genel=所有文件;
}
私有void btnanalize\u单击(对象发送者,事件参数e)
{
String[]checkedFiles=新字符串[checkedListBox1.Items.Count];
整数计数;
int-checkF=0;
对于(count=0;count

谢谢。

以下是一些代码,希望对您有所帮助:

ExcelReader reader = new ExcelReader();
reader.ConnectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=Excel 12.0;", dataSource);

DataSet testData = reader.ConvertToDataSet(workSheet);
您有一个不同的类
ExcelReader
和方法
ConvertToDataSet

public ExcelReader(string connectionString)
{
    _connectionString = connectionString;
}

public DataSet ConvertToDataSet(string workSheetName)
{
    OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [" + workSheetName + "$]", ConnectionString);
    DataSet ds = new DataSet();

    adapter.Fill(ds, "Standard");

    return ds;
}
之后,您将Excel文件放入
数据集中
,您可以操作数据


您还需要一个连接字符串属性

这是宏吗?C#申请?到目前为止你到底做了什么?这是一个C#应用程序。到目前为止,使用FolderBrowserDialog打开的文件夹包含文件,在选中的列表框中显示文件夹中的文件,获取所选文件的路径。您使用哪个库与excel通信?这可能有助于发布您目前拥有的代码,Heya-注释中的代码格式真的很糟糕。。。你能不能编辑你的问题并在那里添加代码,这样我们都能轻松阅读?非常感谢!我添加了代码。对不起,我不熟悉这个网站的格式@Chance谢谢您的帮助。@user3818470如果问题对您有帮助,您可以将其标记为正确!