Excel.Application.version

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by dos999, 7 Feb 2011.

  1. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    Всем привет!
    собственно код:
    Code:
              
    uses
    ..., excel2000, ComObj;
    
    ...
    
    var
    Excel: Variant;
    FileName: string;
    
    ...    
    
    if excel.version >= 12 then
      excel.ActiveWorkbook.SaveAs(FileName, xlExcel7)
    else
      excel.ActiveWorkbook.SaveAs(FileName);
    
    работает не на всех компах, вернее сказать не на всех экселях. ошибка предположительно в строке
    Code:
    if excel.version >= 12 then 
    на одном компе работает в любых вариациях
    Code:
     
    if integer(excel.version) >= 12 then
    ...
    if excel.version >= 12 then
    ...
    if excel.version >= 12.0 then
    
    а вот на другом вообще никак, всё время пишет про конвертацию типов:
    could not convert variant of type (olestr) into type (boolean)
    could not convert variant of type (olestr) into type (currency)
    could not convert variant of type (olestr) into type (double)

    кто нибуть с таким сталкивался? к какому типу приводить? и вообще почему в экселе одной и той же версии (2003) одно и тоже свойство разных типов? Оо
     
    #1 dos999, 7 Feb 2011
    Last edited: 8 Feb 2011
  2. NekitoSP

    NekitoSP New Member

    Joined:
    14 May 2010
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    пробуй excel.version приводить к типу variant...
     
  3. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    теперь уже к сожалению нет возможности попробовать (на глючном компе снесли ось).
    похоже что решение так и останется загадкой =(
     
  4. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    попробовал в variant. Выдал:
    could not convert variant of type (olestr) into type (double)
    ещё есть идеи?
     
  5. dos999

    dos999 Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    ахаха....
    спасает
    DecimalSeparator := '.';

    кто бы мог подумать что в Excel'е разделитель не берётся из системы.
     
    #5 dos999, 10 Feb 2011
    Last edited: 10 Feb 2011
    1 person likes this.