2012-03-11 3 views
0

У меня есть excel, содержащий данные. Я хотел бы, чтобы прочитать данные из значения ячейки Столбца A к значению ячейки колонка F и продолжать читать следующее значение ячейки х КОЛОНН, где х равно значение ячейки чтения в столбце F. Например:Извлечь данные из Excel в WinForms

  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 

Как я могу это сделать?

ответ

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)); 
    } 
Смежные вопросы