2016-11-01 3 views
2

Я пытаюсь извлечь значения ячейки Excel. Я могу получить значение строки успешно. Что мне делать, чтобы вытащить значение каждой ячейки из строки?C# чтение значений ячейки Excel с использованием Microsoft.Office.Interop.Excel

using Microsoft.Office.Interop.Excel; 

string pathToExcelFile = @"C:\Users\MyName\Desktop\Log.xls"; 

Application xlApp = new Application(); 
Workbook xlWorkbook = xlApp.Workbooks.Open(pathToExcelFile, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 

_Worksheet xlWorksheet = (_Worksheet)xlWorkbook.Sheets[1]; 
Range xlRange = xlWorksheet.UsedRange; 

var rowValue = ((Range)xlRange.Cells[2, 1]).Value2.ToString(); 
+1

Он смотрит на меня, как он хранится в массиве Cells - так один из способов будет петлю через каждую ячейку [ 'Row', 'column']. Раньше я просто сбрасывал весь лист в datatable на C# и читал значения оттуда - но вы можете просто изменить '.Cells [2, 1]' на '.Cells [2, 2]', чтобы получить следующая ячейка и продолжить цикл таким образом. – user1274820

+0

Дубликат? http://stackoverflow.com/questions/18993735/how-to-read-single-excel-cell-value –

ответ

1

Попробуйте это:

foreach (Range c in xlRange.Cells) 
{ 
    Console.WriteLine("Address: " + c.Address + " - Value: " + c.Value); 
} 

Вывод из моего тестового файла:

Input

Output

Полный код:

string testingExcel = @"C:\TestingExcel.xlsx"; 
Application xlApp = new Application(); 
Workbook xlWorkbook = xlApp.Workbooks.Open(testingExcel, Type.Missing, true); 
_Worksheet xlWorksheet = (_Worksheet)xlWorkbook.Sheets[1]; 
Range xlRange = xlWorksheet.UsedRange; 
foreach (Range c in xlRange.Rows.Cells) 
{ 
    Console.WriteLine("Address: " + c.Address + " - Value: " + c.Value); 
} 
xlWorkbook.Close(); 
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlWorkbook); 
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlApp); 

редактируемого ввода с несколькими строками:

Input2

Output2

+0

с тем же кодом. Я вижу полные значения строк, отображаемые вместо каждого столбца. Можете ли вы вставить свой полный код, который показал вышеприведенный результат. – Kurkula

+0

Я редактировал свой пост, но код очень похож. Имеет ли ваш входной файл все значения в отдельных ячейках? – user1274820

+0

У меня есть отдельный файл, сохраненный как .xls. – Kurkula