2013-11-07 3 views
0

У меня есть приложение C#, которое считывает данные из файла excel.Чтение индекса столбца и значения столбца из excel в C#

я использовал

Range xlRng = (Range)workSheet.get_Range("A1:B6", Missing.Value);

это прочитать значение от А1 до В6 клеток

если я дал диапазон, мне нужно прочитать значение в словаре и имя ключа должен быть индекс ячейки и значение должно быть соответствующее значение ячейки

Key Value

A1 Значение1

B1 Value2

A2 Value3

B2 Value4

ответ

3

Вы также можете попробовать этот

Excel.Range xlRng = (Excel.Range)workSheet.get_Range("A1:B6", Type.Missing); 
Dictionary<string, string> dic = new Dictionary<string, string>(); 
foreach (Excel.Range cell in xlRng) 
{ 

    string cellIndex = cell.get_AddressLocal(false, false, Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing); 
    string cellValue = Convert.ToString(cell.Value2); 
    dic.Add(cellIndex, cellValue); 
} 

Если вы будете использовать пространство имен Excel, как же, как и я, так что не забудьте импортировать Namespace

using Excel = Microsoft.Office.Interop.Excel; 

Я надеюсь, что это будет полезно

+0

thank u .. string cellValue = cell.Value; изменил это как строку cellValue = cell.Value2; так что, пожалуйста, отредактируйте свой ответ, спасибо u – Sumeshk

+0

, пожалуйста, измените свой ответ – Sumeshk

+0

О, мне очень жаль позднего, cell.Value работает для меня. Во всяком случае, я изменил свой ответ в качестве вашего предложения. Спасибо. – Alice

1

вы пробовали EPPlus?

Вот пример кода, который будет делать то, что вы хотите:

void Main() 
{ 
    var existingFile = new FileInfo(@"c:\temp\book1.xlsx"); 
    // Open and read the XlSX file. 
    using (var package = new ExcelPackage(existingFile)) 
    { 
     // Get the work book in the file 
     ExcelWorkbook workBook = package.Workbook; 
     if (workBook != null) 
     { 
      if (workBook.Worksheets.Count > 0) 
      { 
       // Get the first worksheet 
       ExcelWorksheet sheet = workBook.Worksheets.First(); 

       // read some data 
       Dictionary<string,double> cells = (from cell in sheet.Cells["A1:B6"] 
          where cell.Start.Column == 1 
          select sheet.Cells[cell.Start.Row,cell.Start.Column,cell.Start.Row,2].Value) 
          .Cast<object[,]>() 
          .ToDictionary (k => k[0,0] as string, v => (double)(v[0,1])); 

       //do what you need to do with the dictionary here....! 
      } 
     } 
    } 

} 
+0

поблагодарить u за ваш ответ – Sumeshk

Смежные вопросы