none
Проблема доступа к ячейке Excel через VSTO (используя C#) RRS feed

  • Вопрос

  • Подскажете пожалуйста как передавать правильно ячейку с листа Эксель в запрос SQL, если эта ячейка дата ?

    Ругается у меня на неё....

    Может как то преобразовать к дате?

    И вообще формат обращения к определённой ячейке/диапазону Excel через VSTO с помощью C# ?

    Спасибо!

    15 сентября 2014 г. 7:55

Ответы

  • я так делаю:

    		Excel.Application excelApp = null;
    		excelApp = new Excel.ApplicationClass();
    		excelApp.Visible = true;
    		excelApp.DisplayAlerts = false;
    
    		Excel.Workbooks workBooks = excelApp.Workbooks;
    
    		string templatePath;
    		templatePath = NameFile;
    
    		Excel.Workbook workBook = excelApp.Workbooks.Open(templatePath, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
    		Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets[1];
    
    
    		for(int i = 0; i < dt.Rows.Count; i++) 
    		{
               	Excel.Range rangeValue1 = workSheet.get_Range("A" + (i + 1).ToString(), Type.Missing);  
               	Excel.Range rangeValue2 = workSheet.get_Range("B" + (i + 1).ToString(), Type.Missing);  
               	Excel.Range rangeValue3 = workSheet.get_Range("C" + (i + 1).ToString(), Type.Missing);  
    
    		DateTime DateNew = new DateTime(1899,12,30).AddDays(Convert.ToDouble(rangeValue3.Value2.ToString()));
    
    
    		}
    

    • Помечено в качестве ответа Angela82Irina 17 сентября 2014 г. 19:55
    15 сентября 2014 г. 8:00
  • Попробуйте вот это, драйвера даже не нужны

    http://exceldatareader.codeplex.com/


    Mak Arti

    • Помечено в качестве ответа Angela82Irina 17 сентября 2014 г. 19:55
    15 сентября 2014 г. 9:42

Все ответы

  • я так делаю:

    		Excel.Application excelApp = null;
    		excelApp = new Excel.ApplicationClass();
    		excelApp.Visible = true;
    		excelApp.DisplayAlerts = false;
    
    		Excel.Workbooks workBooks = excelApp.Workbooks;
    
    		string templatePath;
    		templatePath = NameFile;
    
    		Excel.Workbook workBook = excelApp.Workbooks.Open(templatePath, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
    		Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets[1];
    
    
    		for(int i = 0; i < dt.Rows.Count; i++) 
    		{
               	Excel.Range rangeValue1 = workSheet.get_Range("A" + (i + 1).ToString(), Type.Missing);  
               	Excel.Range rangeValue2 = workSheet.get_Range("B" + (i + 1).ToString(), Type.Missing);  
               	Excel.Range rangeValue3 = workSheet.get_Range("C" + (i + 1).ToString(), Type.Missing);  
    
    		DateTime DateNew = new DateTime(1899,12,30).AddDays(Convert.ToDouble(rangeValue3.Value2.ToString()));
    
    
    		}
    

    • Помечено в качестве ответа Angela82Irina 17 сентября 2014 г. 19:55
    15 сентября 2014 г. 8:00
  • Попробуйте вот это, драйвера даже не нужны

    http://exceldatareader.codeplex.com/


    Mak Arti

    • Помечено в качестве ответа Angela82Irina 17 сентября 2014 г. 19:55
    15 сентября 2014 г. 9:42