-
Всем доброго времени суток! Нужно вытянуть данные из таблицы Эксель. Накопал такой способ: https://space-base.ru/library/?book=8Все работает но как всегда по закону подлости есть одно маленькое "Но"! (( В таблице есть код товара вида: 0001234 так вот в StringGrid в итоге попадает лишь 1234 Как втянуть данные без изменений в их исходном виде?
-
Пробовал так:
x := XLApp.ActiveCell.Row; y := XLApp.ActiveCell.Column; XLApp.Range['A1', XLApp.Cells.Item[X, Y]].NumberFormat:='@';
не помогло.. ((
-
имхо, у тебя текст передается как число
-
Я понимаю. А как преобразовать в текст?
-
Попробуй через АДО.
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
-
> Попробуй через АДО. + т.к. ведущие нули теряются явно на конвертации типа, который принимает как 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";
-
Спасибо всем за советы! Моя программа работает с Firebird 2.5 Он с АДО конфликтовать не будет? Как правильно считать таблицу в стрингрид, есть пример(ссылка)?
-
Понятия правильно тут нет. Если можно читать через адо то читайте, если нет то другим удобным способом. Есть сторонние библиотеки.
-
Firebird 2.5 Он с АДО конфликтовать не будет?
-
нет
|