|
分類:[C#]
2018/05/22(Tue) 11:23:47 編集(投稿者) 2018/05/22(Tue) 11:20:17 編集(投稿者)
<pre><pre>VS 2017 excel2013 はじめまして、こんにちは。 csvよりエクセルへ出力するプログラムを組んだのですが、 oSheet.Cells[i + 6, j + 2] = strSplit[j]; ここで読み込んだ値をいちいちExcelにアクセスするので遅くなります。適当な配列やらListにデータを貯めて最後に(又は一定量貯まるたびに) 一括で出力するようにすれば良いことは分かります。その処理を自分なりに調べたのですが、今の私の力では実行することが出来ませんでした。わかる方がいれば是非ご教示願いたいです。
string excelName = @"C:\場所指定\テスト.xls"; Excel.Application oXls; Excel.Workbook oWBook;
oXls = new Excel.Application();
oWBook = (Excel.Workbook)(oXls.Workbooks.Open(excelName)); //Excelファイルをオープンする
Excel.Worksheet oSheet; oSheet = (Excel.Worksheet)oWBook.Sheets[1];
oXls.Visible = false; //Excel を非表示にする
var strRec = new StreamReader("C:\\場所指定\\テスト.txt", Encoding.GetEncoding(932));
var i = 0; while (!strRec.EndOfStream) { i = i + 1; var readLine = strRec.ReadLine(); if (readLine == null) continue; var strSplit = readLine.Split(','); // 読み込んだ一行をカンマ毎に分けて配列に格納する for (var j = 0; j < 28; j++) { oSheet.Cells[i + 6, j + 2] = strSplit[j]; } }
oWBook.Save(); oXls.Workbooks.Close();</pre></pre>
|