Read all the cell values from an Excel range in C#

后端 未结 2 1765
误落风尘
误落风尘 2020-12-11 05:09

Suppose I have range from E2 to E16. How do I read values from cells E2 to E16?

相关标签:
2条回答
  • 2020-12-11 05:50

    Another Alternative approach. Positng as a spearate answer because it wil be give less space for confusion.

    Excel.Application app = new Excel.Application();
    
    Excel.Workbook wbook = null;
    
    Excel.Worksheet wsheet = null;
    
    Excel.Range range = null;
    
    app.Visible = false;
    
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    
    string filepath = inputFile1.Value.ToString();
    
    if (filepath != "")
    
    {
    
    wbook = app.Workbooks.Open(filepath, Missing.Value, Missing.Value, Missing.Value,
    
    Missing.Value, Missing.Value, Missing.Value,
    
    Missing.Value, Missing.Value, Missing.Value,
    
    Missing.Value, Missing.Value, Missing.Value,
    
    Missing.Value, Missing.Value);
    
    
    
    string currentSheet = "Sheet1";
    
    wsheet = (Excel.Worksheet)wbook.Worksheets.get_Item(currentSheet);
    
    range = wsheet.get_Range("B6", "H20");
    
    System.Array myvalues = (System.Array)range.Cells.Value2;
    
    valueArray = ConvertToStringArray(myvalues);
    
    
    
    if (app != null)
    
    {
    
    app.Workbooks.Close();
    
    app.Quit();
    
    }
    
    app = null;
    
    wsheet = null;
    
    range = null;
    
    string[] ConvertToStringArray(System.Array values)
    { 
    
    // create a new string array
    string[] theArray = new string[values.Length];
    
    // loop through the 2-D System.Array and populate the 1-D String Array
     for (int i = 1; i <= values.Length; i++)
      {
       if (values.GetValue(1, i) == null)
        theArray[i-1] = "";
      else
       theArray[i-1] = (string)values.GetValue(1, i).ToString();
      }
    
      return theArray;
    }
    
    0 讨论(0)
  • 2020-12-11 06:04

    You can try somethinfg like this. it should work

    U can specify ur range as u wish inside.

    this.openFileDialog1.FileName = "*.xls";
      if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
       {
          Excel.Workbook theWorkbook = ExcelObj.Workbooks.Open(
             openFileDialog1.FileName, 0, true, 5,
              "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false,
              0, true); 
         Excel.Sheets sheets = theWorkbook.Worksheets;
         Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
         for (int i = 1; i <= 10; i++)
         {
         Excel.Range range = worksheet.get_Range("A"+i.ToString(), "J" + i.ToString());
         System.Array myvalues = (System.Array)range.Cells.Value;
         string[] strArray = ConvertToStringArray(myvalues);
         }
    }
    
    string[] ConvertToStringArray(System.Array values)
    { 
    
    // create a new string array
    string[] theArray = new string[values.Length];
    
    // loop through the 2-D System.Array and populate the 1-D String Array
     for (int i = 1; i <= values.Length; i++)
      {
       if (values.GetValue(1, i) == null)
        theArray[i-1] = "";
      else
       theArray[i-1] = (string)values.GetValue(1, i).ToString();
      }
    
      return theArray;
    }
    
    0 讨论(0)
提交回复
热议问题