C# 如何使用c读取excel中的特定列并获取该列中不同单词的出现次数

C# 如何使用c读取excel中的特定列并获取该列中不同单词的出现次数,c#,excel,visual-studio,C#,Excel,Visual Studio,我想用C查找H列中不同单词的出现次数,并忽略空值。稍后,我必须在列表框中显示输出。我正在使用Microsoft.Office.Interlop.Excel引用打开工作簿并访问第一个工作表 我尝试了以下代码: private void button3_Click(object sender, EventArgs e) { Excel.Application xlApp; Excel.Workbook xlWorkbook; Excel.Wo

我想用C查找H列中不同单词的出现次数,并忽略空值。稍后,我必须在列表框中显示输出。我正在使用Microsoft.Office.Interlop.Excel引用打开工作簿并访问第一个工作表

我尝试了以下代码:

private void button3_Click(object sender, EventArgs e)
    {

        Excel.Application xlApp;
        Excel.Workbook xlWorkbook;
        Excel.Worksheet xlWorksheet;
        object misValue = System.Reflection.Missing.Value;


        xlApp = new Excel.Application();
        xlWorkbook = xlApp.Workbooks.Open("ABC.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
        xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(1);


        Excel.Range bColumn = xlWorksheet.UsedRange.Columns[4, Type.Missing].Columns.Count;


    List<string> dataItems = new List<string>();

    foreach (object o in bColumn)
    {

        Excel.Range row = o as Excel.Range;
        string s = row.get_Value(null);
        dataItems.Add(s);

    }
    listBox1.DataSource = dataItems;
        xlWorkbook.Close(true, misValue, misValue);
        xlApp.Quit();

        releaseObject(xlWorksheet);
        releaseObject(xlWorkbook);
        releaseObject(xlApp);
    }
请帮助我了解代码,并建议最快的方法,因为工作表包含一千多行


提前感谢您的帮助

例如,如果要查找C列中的所有值,则:

object[] columnValue = xlWorksheet.Range["C"].Values2;
columnValue将是excel中的值


因此,如果在内存中执行,速度会快得多,您可以首先使用columnValue将其转换为字符串列表?空:a.ToString.ToList然后您将能够执行所有类型的逻辑,例如使用Distinct获取Distinct值、计数获取发生率等等。

欢迎使用Stackoverflow!你的问题已经很好了。如果你描述了你发布的代码的行为以及你期望它做什么,你可以做得更好。回答得好,只需一句话:cell的值可以为null,所以你需要检查它bebore.ToString。比如columnValue.Selecta=>a==null?null:a.ToString.ToList或columnValue.Selecta=>c 6.0中的a?.ToString.ToList谢谢,我已经修改了我的回答我从“object[]columnvalues=xlWorksheet.Range[L].Value2;”上的HRESULT:0x800A03EC收到此异常