は、Excelブックからの読み取りを試しており、3560行7列、約1分17秒のシートを読み取るのに時間がかかることに気づいた。私がしたのは、シート全体をループして、値をリストに格納することでした。Excelワークブック - C#からの読み込みがかなり遅いですか?
これは正常ですか、何か間違っていますか?
static void Main(string[] args)
{
List<string> testList = new List<string>();
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open(@"C:\Users\rnewell\Desktop\FxData.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1];
Excel.Range range = worksheet.UsedRange;
int rowCount = range.Rows.Count;
int colCount = range.Columns.Count;
int rowCounter = 1;
int colCounter = 1;
while (rowCounter < rowCount)
{
colCounter = 1;
while (colCounter <= colCount)
{
//Console.Write(range.Cells[rowCounter, colCounter].Value2.ToString() + " ");
testList.Add(range.Cells[rowCounter, colCounter].Value2.ToString());
colCounter++;
}
Console.WriteLine();
rowCounter++;
}
Console.ReadKey();
excelApp.Workbooks.Close();
}
範囲を読み取るためにセルをループする必要はありません。1回の操作で行うことができます。 Sergeyの答えはこちらをご覧ください:http://stackoverflow.com/questions/7919964/low-performance-when-reading-data-from-excel-workbook-to-arraylist-in-c-sharp .NETからのExcelの自動化は、一般的に( VBAを使用するよりも処理が遅くなります。これは、同じプロセス内ではなく複数のプロセスを操作しているためです。 –
当分の間、私は遅れを上げます。データセットが大きすぎる場合は、このスレッドで提案されているソリューションを使用します。ありがとう – Roge