重複の可能性:
Excelファイルからデータを読み取る
C#でExcelスプレッドシートから読み取るのに問題があります。私はAからXまでのすべてのセルを読み取るこのコードを持っています。
int i = 1;
int number;
System.Array myvalues; string[] strArray;
Microsoft.Office.Interop.Excel.Range range =
worksheet.get_Range("A" + i.ToString(), "X" + i.ToString());
while(range.Count!=0)
{
i++;
range = worksheet.get_Range("A" + i.ToString(), "X" + i.ToString());
myvalues = (System.Array)range.Cells.Value;
strArray = ConvertToStringArray(myvalues);
number = Convert.ToInt32(strArray[0]);
}
私の質問は次のとおりです。「number」値に基づいて、Excelで次の4 *「number」行を読み取るにはどうすればよいですか?
例えば:
A B C D E F G H I J
a a a a a 1 a a a a
Fのセル値が1なので読みたい(GHIJ)Fのセル値が2の場合読みたい(GHIJKLMN)
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
。
if (!number_add_file.Equals("") )
{
addcmpy();
Microsoft.Office.Interop.Excel.Range range_add = worksheet.get_Range("X"+i.ToString() , "AA" + i.ToString());
while(range_add.Count != 0){
if (Int32.Parse(number_add_file) == 2)
{
range_add = worksheet.get_Range("X"+i.ToString() , "AE"i.ToString() );
}
else if (Int32.Parse(number_add_file) == 3)
{
range_add = worksheet.get_Range("X"i.ToString() , "AI"i.ToString());
}
else if (Int32.Parse(number_add_file) == 4)
{
range_add = worksheet.get_Range("X"i.ToString() , "AM"i.ToString());
}
else if (Int32.Parse(number_add_file) == 5)
{
range_add = worksheet.get_Range("X" i.ToString(), "AQ"i.ToString() );
}
System.Array values = (System.Array)range_add.Cells.Value;
string[] str = ConvertToStringArray(values);
for (int l = 0; l < str.Length; l++)
Console.WriteLine(l +" "+str[l]);
name = str[0];
lang_add = str[1];
price = str[2];
description = str[3];
Console.WriteLine(name + " " + lang_add + " " + price + " " + description);
addfile();
name = "";
lang_add = "";
price = "";
description = "";
}
}