2012-03-11 18 views
0

私はデータを含むExcelを持っています。WinFormsでExcelからデータを取得

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

Fのセル値:I xは、例えば、カラムFで読み取らセル値に等しい次のx列のセルの値を読み出すために、列Fのセルの値に列Aのセルの値からデータを読み、続けたいですFのセルの値が2である場合は1ので、私は (GHIJを)読みたいされて、私は(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 

どうすればいいですか?

答えて

0

つのオプション:

最初ははるかに簡単ですが、あなたはExcelがインストールされていない第二作品。

+0

私は既にInteropを使用していますが、私はそれを行う方法がわかりません...質問は:どのように私はそれを実装することができますか? – Vlasin

+0

コードはまだありますか、それともまだ計画中ですか? –

+0

私はコードを持っていますが、うまくいきません...他の誰かがそれをどのように解決するかを見たいと思っていました。 – Vlasin

0
// OPEN EXCEL and WORKSHEET 

xlApp = new Microsoft.Office.Interop.Excel.Application(); 
xlWorkBook = xlApp.Workbooks.Open(@"C:\TEST.xlsx", 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false); 
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Sheets[1]; 

// F column index starting, A == 1 
int lastColumnIndex = 6; 

// read each cell including 'F1' and add it to the richTextBox (it is my placeholder in test project) 
for (int i = 1; i <= lastColumnIndex; i++) 
{ 
    richTextBox1.AppendText(Convert.ToString(((Range)xlWorkSheet.Cells[1, i]).Value2)); 
} 

// read and save the value of 'F1' to a variable - 2nd read of the same cell can be avoided, though 
int extraColumnsToRead = Convert.ToInt32(((Range)xlWorkSheet.Cells[1, lastColumnIndex]).Value2) * 4; 

// (value(F1) * 4) cells will be loaded and added to my RichTextBox. 
if (extraColumnsToRead > 0) 
    for (int i = lastColumnIndex + 1; i <= lastColumnIndex + extraColumnsToRead; i++) 
    { 
     richTextBox1.AppendText(Convert.ToString(((Range)xlWorkSheet.Cells[1, i]).Value2)); 
    } 
関連する問題