首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用c#统计excel中的行数

使用c#统计excel中的行数
EN

Stack Overflow用户
提问于 2012-07-19 19:53:31
回答 2查看 2.5K关注 0票数 0

我有一个excel表格,代码如下

代码语言:javascript
代码运行次数:0
运行
复制
VPUDB001
VPUDB002
VPUDB003
VPUDB004
VPUDB005
VPUDB006
VPUDB007
VPUDB008
VPUDB009
VPUDB010
VPUDB011

VPULN001
VPULN002
VPULN003
VPULN004
VPULN005
VPULN006
VPULN007
VPULN008
VPULN009

我想在excel中显示以VPUDBVPULN开头的行数。

代码语言:javascript
代码运行次数:0
运行
复制
private void browse_Click(object sender, EventArgs e)
{
    DialogResult fileopen = openFileDialog1.ShowDialog();
    string filename = openFileDialog1.FileName;
    textBox1.Text = filename;
    try
    {
        olecon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + filename + "';Extended Properties=Excel 12.0");
        olecon.Open();
        DataTable dt = new DataTable();
        dt = olecon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string[] excelsheetnames = new string[dt.Rows.Count];
        int i = 0;
        foreach (DataRow row in dt.Rows)
        {
            excelsheetnames[i] = row["TABLE_NAME"].ToString();
            string sheetnamealone = excelsheetnames[i].Remove(excelsheetnames[i].IndexOf('$'));
            comboBox1.Items.Add(sheetnamealone);
            i++;
        }
        //comboBox1.SelectedIndex = 1;

    }
    catch
    {

    }
    finally
    {
        olecon.Close();
    }
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    OleDbCommand cmd = new OleDbCommand("Select [code] FROM ["+comboBox1.SelectedItem+"$] ", olecon);
    olecon.Open();
    OleDbDataReader dReader;
    dReader = cmd.ExecuteReader();
    while (dReader.Read())
    {
        string s = dReader[0].ToString();


    }
    olecon.Close();
}

在这里,我浏览excel表格,并在组合框中计数和显示,然后在组合选择事件中,我需要如上所述地计数特定的表行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-21 18:28:26

像这样尝试linq将会解决你的问题

代码语言:javascript
代码运行次数:0
运行
复制
 var query = from row in dTable.AsEnumerable()
             where ((row.Field<string>("columnname")).contains("VPUDB")
                   || (row.Field<string>("columnname")).contains("VPULN"))

      select row;
票数 1
EN

Stack Overflow用户

发布于 2012-07-19 20:01:03

在最初计算组合框时,使用字符串比较来查看它是否包含VPUDBVPULN,如果包含,则递增计数器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11560297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档