Конференция "Corba" » Импорт с Excel [D7, WinXP]
 
  • Владимир (24.10.07 13:11) [0]
    У меня возникает ошибка при импорте данных с Excel. Точнее, не верно передаются данные. Одна из колонок Excel содержит данные (1 байт). При импорте код символа в Excel не совпадает с кодом символа в Delphi...
    Delphi использую Ord()
    (Символы с кодами  142...150 импортруются как символ с номером 63)
    в Excele для проверки Code("")  (или КодСимв...).
    И еще попутно один вопрос, как определить в ячейке какая часть текста выделена жирным шрифтом

    Заранее благодарен, Владимир
  • Сергей М. © (24.10.07 13:13) [1]

    > Одна из колонок Excel содержит данные (1 байт)


    Это как ?
  • Владимир (24.10.07 13:14) [2]
    Одна колонка шириной 1 байт ....
  • Сергей М. © (24.10.07 13:15) [3]
    С каких пор ширина стала измеряться в байтах ?

    Эдак и до измерения траффика в миллиметрах можно докатиться)
  • Владимир (24.10.07 13:17) [4]
    Хорошо. В колонке находится текст, длиной в 1 байт. Так понятнее ?
  • Palladin © (24.10.07 13:19) [5]
    Длинной в один символ, а в байт... да и показать как импортируешь думаешь не надо? Типа тут народ на столько свои телепатические возможности развил, что сразу скажет где ошибка?
  • Сергей М. © (24.10.07 13:19) [6]

    > Так понятнее ?


    Так понятнее.
    Однако и длина текста в байтах не измеряется.

    А с чего ты так уверен, что в ячейке имеенно текстовое, а не, скажем, числовое значение ?

    И вообще, показывай код импорта ...
  • Сергей М. © (24.10.07 13:21) [7]

    > В колонке находится текст


    Значение находится не в колонке, а в ячейке. И по барабану, в какой колонке находится эта ячейка.
  • Владимир (24.10.07 13:27) [8]
    Symb : Char;
    .....
    .....
        RangeMatrix := XLApp.Range['A1',XLApp.Cells.Item[X,Y]].Value;

    .....

          For I := 4 To X Do
          Begin
             Line:='';
             Symb := RangeMatrix[I,13];
             .....
          End;
  • Сергей М. © (24.10.07 13:33) [9]
    И что ?

    Вопросы что ли видишь в результате ?
  • Владимир (24.10.07 13:38) [10]
    В Excele есть символы с кодами 141-149...(через фунцию КодСимв определял)
    после импорта у меня почти все символы импортируюются с номером 63...
    (проверял через функцию Ord(Symb)...)
    Что-то с кодировкой связано...
    Я могу, конечно, создать еще одну колоночку программно и прописать там формулу с кодом символа нужной колонки и импортировть потом это число, но коряво так получится...
  • Сергей М. © (24.10.07 13:42) [11]
    Пробуй юникод:

    Symb : WideChar;
  • Владимир (24.10.07 13:47) [12]
    Спасибо большое, Сергей. Работает...
    И еще один вопрос, если не трудно будет ответить...
    Как узнать какая подстрока в тексте ячейки выделена Bold...

        If WorkSheet.Range['Ñ11'].Characters[3, 1].Font.Bold
        Then ShowMessage('Bold')
        Else ShowMessage('No');

    Так правильно будет ? ()
  • Сергей М. © (24.10.07 13:51) [13]
    Наверно ...

    Пробуй !
  • Виктор (26.03.08 14:17) [14]
    WorkSheet.Range['Ñ11'].Characters[3, 1].Font.Bold
    Memo1.Font.Style=[fsBold];
 
Конференция "Corba" » Импорт с Excel [D7, WinXP]
Есть новые Нет новых   [120349   +19][b:0][p:0.001]