如何使用C#从excel的第一列中获取不同的值及其计数

本文关键字:获取 一列 何使用 excel | 更新日期: 2023-09-27 18:28:05

我的excel工作表"abc.xls"包含4列,如以下A至D列,A1:D1包含标题信息,即样本号、时间、名称、人:-

Sample number   Time                Name           Man
100             28-10-2014 20:24    absjsdj        abc
1000            28-10-2014 20:13    def            jss
800             29-10-2014 20:13    skdjksj        def
100             30-10-2014 20:13    skdjksj        def
1000            31-10-2014 20:13    skdjksj        def
700             01-11-2014 20:13    skdjksj        def
600             02-11-2014 20:13    skdjksj        def

使用c#代码,我用下面的代码打开了这个excel文件;现在我需要帮助来实现这个功能:

using Excel = = Microsoft.Office.Interop.Excel;
Excel.Application excelApp = new Excel.Application();
                    excelApp.DisplayAlerts = false;
                    Excel.Workbook xlWorkBook;
                    Excel.Worksheet xlWorkSheet;
                    xlWorkBook = excelApp.Workbooks.Open("abc.xls");
                    xlWorkSheet = (Excel.Worksheet)xlWorkBook.ActiveSheet;

从A列中得到不同的数字,即从这个excel数据中,我们应该得到100、1000、800、700、600,每个样本数发生的次数,如100发生2次,1000发生2次、800发生1次、700发生1次,600发生1次。

一旦提取了这些信息,我想以以下方式使用任何只读控件列表框、标签、文本框在windows窗体上显示输出:-

100  : 2
1000 : 2
800  : 1
700  : 1
600  : 1

如何使用C#从excel的第一列中获取不同的值及其计数

您可以使用类似于下面代码段的代码通过excel循环。例如,您可以将值存储在字典Dictionary<int,List<string>>中,以存储从每列收集的字符串值。然后,使用DateTime.Parse、int.Parse等将其转换为date、int、float或其他您需要的数据类型

using Excel = Microsoft.Office.Interop.Excel;
class Program
{
    static void Main(string[] args)
    {
        ReadExcel.PrintAllCells(@"D:'some_place'some_excel.xlsx");
    }
}
public class ReadExcel
{
    public static void PrintAllCells(string location)
    {
        Excel.Application xlApp = new Excel.Application();
        Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(location);

        foreach (var xlWorksheet in xlWorkbook.Worksheets)
        {
            Excel.Range xlRange = xlWorksheet.UsedRange;
            int rowCount = xlRange.Rows.Count;
            int colCount = xlRange.Columns.Count;
            // LOOPING THROUGH EXCEL CELLS STARTS WITH 1 
            // NOT WITH 0
            for (int column = 1; column < colCount; column++)
            {
                for (int row = 1; row < rowCount; row++)
                {
                    var CellData = xlRange.Cells[row, column].Value;
                    Console.WriteLine(CellData);
                }
            }
        }
    }
}