我创建了一个函数,用于从 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);
}
}
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>>