gpt4 book ai didi

c# - 从 Excel 文件中读取数据

转载 作者:行者123 更新时间:2023-12-04 05:54:33 26 4
gpt4 key购买 nike

我在读取 C# 中的 Excel 电子表格时遇到了一些问题。
我有这段代码,我读取了从 A 到 X 的每个单元格。

System.Array myvalues; string[] strArray;
Microsoft.Office.Interop.Excel.Range range =
worksheet.get_Range("A" + i.ToString(), "W" + i.ToString());

while(range.Count!=0)
{
i++;
//Console.WriteLine(i);
range = worksheet.get_Range("A" + i.ToString(), "W" + i.ToString());
myvalues = (System.Array)range.Cells.Value;
strArray = ConvertToStringArray(myvalues);
name = clearstr(strArray[1]);

for ( int j = 1 ; j <= Int32.Parse(number_add_file)*4 ; j++)
{
name = "";
lang_add = "";
price = "";
description = "";
Console.WriteLine("I got in!");

Microsoft.Office.Interop.Excel.Range range_add =
worksheet.get_Range("X" + i.ToString(),Type.Missing);

System.Array values = (System.Array)range_add.Cells.Value;
string[] str = ConvertToStringArray(values);
name = str[0];
lang_add = str[1];
price = str[2];
description = str[3];
Console.WriteLine(name + " "
+ lang_add + " " + price + " " + description);

addfile();
}

我的问题是:如何根据“数字”值读取 excel 中的下 4 *“数字”行?

例如:
         A B C D E F G H I J
a a a a a 1 a a a a

F 的单元格值为 1,所以我想阅读(G H I J)
如果 F 的单元格值为 2,我想阅读(G H I J K L M N)
         A B C D E F G H I J K L M N
a a a a a 2 a a a a a a a a

F 的单元格值 3 :
        A B C D E F G H I J K L M N O P Q R
a a a a a 3 a a a a a a a a a a a a

最佳答案

这适用于 .NET 4.0:

using Excel = Microsoft.Office.Interop.Excel;
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("somefile.xls");
Excel.Worksheet xlWorksheet = xlWorkbook.Sheets[1]; // assume it is the first sheet
Excel.Range xlRange = xlWorksheet.UsedRange; // get the entire used range
int value = 0;
if(Int32.TryParse(xlRange.Cells[1,6].Value2.ToString(), out value)) // get the F cell from the first row
{
int numberOfColumnsToRead = value * 4;
for(int col=7; col < (numberOfColumnsToRead + 7); col++)
{
Console.WriteLine(xlRange.Cells[1,col].Value2.ToString()); // do whatever with value
}
}

这将打开工作簿并获取工作簿中的第一个工作表。然后我们获取整个使用的范围并将其放入范围变量中。从那里,我们尝试解析第一行“F”列(第 6 列,它是基于 1 而不是基于零)中的 int。如果解析成功,我们然后将该数字乘以 4 以查看您需要多少列(在您的帖子中您说的是行,但您的示例是列)。我们使用 for 循环从 G 列(第 7 列)开始,然后转到要读取的列数 + 7(以说明我们跳过的列)。您可以随意使用这些值,但在本示例中,我只是将它们写入控制台。

关于c# - 从 Excel 文件中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com