从另一个函数访问数据列表

问题描述 投票:0回答:1

我创建了一个函数,用于从 Excel 文件读取数据并按行和列存储为列表。现在我想使用 C# 来使用或访问列表中的数据到另一个函数

public static void ReadExcelData(string filepath)
{
    try
    {
        Excel.Application excelApp = new Excel.Application();
        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(filepath);
        Excel._Worksheet excelWorksheet = excelWorkbook.Sheets[1];
        Excel.Range excelRange = excelWorksheet.UsedRange;

        int rowCount = excelRange.Rows.Count;
        int colCount = excelRange.Columns.Count;

        object[,] data = new object[rowCount, colCount];

        // Loop through each cell in the range and store the data in the array
        for (int i = 1; i <= rowCount; i++)
        {
            for (int j = 1; j <= colCount; j++)
            {
                data[i - 1, j - 1] = excelRange.Cells[i, j].Value;
            }
        }

        List<List<object>> newData = new List<List<object>>();

        // Access the data by rows and columns
        for (int i = 0; i < rowCount; i++)
        {
            List<object> newRow = new List<object>();
            for (int j = 0; j < colCount; j++)
            {
                newRow.Add(data[i, j]);
            }
            newData.Add(newRow);
        }

        excelWorkbook.Close(false);
        excelApp.Quit();
    }
    catch (NXException ex)
    {
        theSession.LogFile.WriteLine("+++ Error Found in 'Main' : " + ex.Message + Environment.NewLine + ex.StackTrace);
    }
}
c# nxopen
1个回答
0
投票
public static List<List<object>> ReadExcelData(string filepath)
{
    List<List<object>> newData = new List<List<object>>();
    try
    {
        Excel.Application excelApp = new Excel.Application();
        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(filepath);
        Excel._Worksheet excelWorksheet = excelWorkbook.Sheets[1];
        Excel.Range excelRange = excelWorksheet.UsedRange;

        int rowCount = excelRange.Rows.Count;
        int colCount = excelRange.Columns.Count;

        object[,] data = new object[rowCount, colCount];

        for (int i = 1; i <= rowCount; i++)
        {
            for (int j = 1; j <= colCount; j++)
            {
                data[i - 1, j - 1] = excelRange.Cells[i, j].Value;
            }
        }

        for (int i = 0; i < rowCount; i++)
        {
            List<object> newRow = new List<object>();
            for (int j = 0; j < colCount; j++)
            {
                newRow.Add(data[i, j]);
            }
            newData.Add(newRow);
        }

        excelWorkbook.Close(false);
        excelApp.Quit();
    }
    catch (Exception ex) // Changed from NXException to Exception for broader error handling
    {
        Console.WriteLine("Error: " + ex.Message);
        return null; // return null or throw, depending on how you want to handle errors
    }
    return newData;
}

更改

ReadExcelData
方法的签名以返回
List<List<object>>

© www.soinside.com 2019 - 2024. All rights reserved.