Конференция "Начинающим" » Импорт из эксель
 
  • Петрович (30.01.19 23:21) [0]
    Всем доброго времени суток! Нужно вытянуть данные из таблицы Эксель. Накопал такой способ:https://space-base.ru/library/?book=8
    Все работает но как всегда по закону подлости есть одно маленькое "Но"! (( В таблице есть код товара вида: 0001234 так вот в StringGrid в итоге попадает лишь 1234 Как втянуть данные без изменений в их исходном виде?
  • Петрович (31.01.19 00:09) [1]
    Пробовал так:

    x := XLApp.ActiveCell.Row;
    y := XLApp.ActiveCell.Column;
    XLApp.Range['A1', XLApp.Cells.Item[X, Y]].NumberFormat:='@';

    не помогло.. ((
  • manaka © (31.01.19 10:55) [2]
    имхо, у тебя текст передается как число
  • Петрович (31.01.19 12:11) [3]
    Я понимаю. А как преобразовать в текст?
  • Плохиш © (31.01.19 14:19) [4]
    Попробуй через АДО.

     object connMain: TADOConnection
       ConnectionString =
         'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Meine Dokumente\' +
         'Fonoteka.xls;Mode=Read;Extended Properties=Excel 8.0;Persist Sec' +
         'urity Info=False'
       LoginPrompt = False
       Mode = cmRead
       Provider = 'Microsoft.Jet.OLEDB.4.0'
       Left = 32
       Top = 16
     end

  • sniknik © (31.01.19 16:10) [5]
    > Попробуй через АДО.
    +
    т.к. ведущие нули теряются явно на конвертации типа, который принимает как INT, то нужно добавть к строке подключения параметр IMEX=1, который заставит драйвер все поля читать строками. без этого вероятность что будет тоже самое и с ado близка к 100%.

    кстати и для чтения через объект Excel.Application должен быть способ прочитать строку строкой, без дефолтных преобразований строки в число(->variant->опять строка), но я его не знаю/или забыл, а Excel-я сейчас нет, давно перестал им пользоваться.

    p.s. способ с АДО будет лучше т.к. не требует наличия Excel-я на компе. jet предустановлен в винду, а вот если версия файла совсем новая (XLSX) то нужен новый драйвер, его уже нужно ставить...
    Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+OpenDialog.FileName+';Extended Properties="Excel 12.0;HDR=NO;IMEX=1";
  • Петрович (31.01.19 21:39) [6]
    Спасибо всем за советы! Моя программа работает с Firebird 2.5 Он с АДО конфликтовать не будет? Как правильно считать таблицу в стрингрид, есть пример(ссылка)?
  • ухты © (01.02.19 15:03) [7]
    Понятия правильно тут нет.
    Если можно читать через адо то читайте, если нет то другим удобным способом.
    Есть сторонние библиотеки.
  • Петрович (01.02.19 16:04) [8]
    Firebird 2.5 Он с АДО конфликтовать не будет?
  • ухты © (01.02.19 16:40) [9]
    нет
 
Конференция "Начинающим" » Импорт из эксель
Есть новые Нет новых   [118380   +19][b:0][p:0.001]