вторник, 6 сентября 2011 г.

Считывание даты из документа Microsoft Excel


Вроде не чего сложного в считывании значений из Excel  документа нет, делаю я это так.
 
   1:  
   2: excelappworkbooks = excelapp.Workbooks;
   3: excelappworkbook = excelappworkbooks["file.xlsx"];
   4:  
   5: try
   6: {
   7: excelappworkbook.SaveAs(@"D:\new_file.xlsx", 
   8: Excel.XlFileFormat.xlOpenXMLWorkbook,
   9: Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
  10: Excel.XlSaveAsAccessMode.xlNoChange,
  11: Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
  12: Type.Missing);
  13: }
  14: catch (Exception ex)
  15: {
  16: listBox1.Items.Add(ex.Message);
  17: }

 

Открыли документ. Тепер читаем.

 


   1:  
   2: excelsheets = excelappworkbook.Worksheets;
   3: excelworksheet = (Excel.Worksheet)excelsheets.get_Item("Лист1");
   4: excelcells = excelworksheet.get_Range("A1", "A1");
   5: new_var = excelworksheet.get_Range("B1", "B1");
   6: dataGridView1.Rows.Add(Convert.ToString(excelcells­.Value2),Convert.ToString(new_var.Value2));


 

А вот с чтением даты у меня возникли заморочки, ексель возвращает дату как double.

 

Потом умные люди подсказали что из double можно получить DateTime используя вот такое преобразование:

 

var dt = DateTime.FromOADate(/*Дата как double*/);

 

Мне помогло, надеюсь и вам полезно окажется.

суббота, 3 сентября 2011 г.

Определение рабочей области рабочего стола

Вот столкнулся с такой задачкой нужно размещать форму в зависимости от размеров экрана. Решение оказалось очень простым использовать класс Screen.


Screen.PrimaryScreen.WorkingArea; - вот так получаем размеры рабочей области главного экрана 
без панели задач.