powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
14 сообщений из 39, страница 2 из 2
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39860926
vector0001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это единственный нормальный форум где есть люди понимающие в Delphi я понимаю что есть другие языки. Я начал немного изучать и писать скрипты на Python но визуальное создание для пользователя у него сложнее.

Доступ через ODBC я рассматриваю как вариант в случае провала по другим вариантам.
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39860928
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vector0001Это единственный нормальный форум где есть люди понимающие в Delphi я понимаю что есть другие языки. Я начал немного изучать и писать скрипты на Python но визуальное создание для пользователя у него сложнее.

Доступ через ODBC я рассматриваю как вариант в случае провала по другим вариантам.
Так ODBC через Delphi

Кидаете TFDConnection + TFDQuery настраиваете и пишете как хотите и что хотите...
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39860932
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vector0001Я начал немного изучать и писать скрипты на Python но визуальное создание для пользователя
у него сложнее.

Повторяю медленно: изучай и пиши скрипты для Экселя. У него всё нормально и с визуальным
созданием и со скоростью выгрузки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39860947
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vector0001Полез к компонент NativeExcel нашел процедуру отвечающую за выгрузку.
На скине видно как он видит текст
Так видит не NativeExcel, а отображает RAD.

Попробуйте на чистом проекте выгрузить ту же строку (символы) - просто константой.
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39861036
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вообще в качестве быстрого и простого, хоть и кривого, метода, можно такой вариант:
- через либу выгружать текст, закодированный в base64
- распаковывать xlsx как zip и открывать как xml
- проходиться по всем узлам xml и раскодировать base64
- сохранить и запаковать
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39861037
vector0001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Я начал тестировать с разными Unikode символами и выяснил что все выгружается и хорошо работает но 20 первых символов управления Unicode не отображаются боюсь что есть ещё какие нибудь которые будут выдавать ошибку
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39861050
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vector0001> Я начал тестировать с разными Unikode символами
vector0001> и выяснил что все выгружается и хорошо работает
vector0001> но 20 первых символов управления Unicode не отображаются

Откуда вот это всё?
Покажите простой код, в котором одни Unicode
константы отображаются, а другие - нет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862482
vector0001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,
Простите за молчание.
Вот простой пример символ первой строки при выгрузке выгрузится как D11 и при сборке XLSX выдаст ошибку
Остальные символы хорошо работают так что дело не в юникоде а именно в символах специфических.

Символы взял

http://myhomeinet.ru/smilegenerator/page-274.html

Код: pascal
1.
2.
3.
4.
5.
6.
7.
procedure TForm1.FormCreate(Sender: TObject); 
begin
      Label1.Caption:='заза';   // компилятор видит 'за'#$11'за'
      Label2.Caption:='за ッ ヅ ツ ゾ シ ジ ッ ツ シ ン 〴 〳 〵 〲 〱 〷 〥 〤 〡 ٺ ق ت ث ة за';//на форуме не отобразилось но тут смайлики разнообразные 
      Label3.Caption:='за♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓за';//тут знаки зодиака
      Label4.Caption:='за♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟за';//тут Шахматы 
end;
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862484
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приложите код выгрузки и результирующий файл, а не скриншоты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862487
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vector0001Я начал тестировать с разными Unikode символами и выяснил что все выгружается и хорошо работает но 20 первых символов управления Unicode не отображаются боюсь что есть ещё какие нибудь которые будут выдавать ошибкуА зачем нужно отображать спецсимволы управления? Что пользователь будет с ними делать? Помимо всего прочего могу напомнить, что символы могут тупо не отображаться из-за того что в шрифте нет их глифов - те же шахматы, зодиаки и прочая муйня...
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862707
vector0001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
{Вывод в EXEL любого отчета }procedure Otshot(n_list:string);
var
  i,j: Integer;
Begin
  try
    Dmod.Dataset2Excel.Workbook:=WorkBook;
    Dmod.Dataset2Excel.WorksheetName:='ZZZ';
    Dmod.Dataset2Excel.Dataset:=Dmod.ADOQuery_report;
    Dmod.Dataset2Excel.RowsPerSheet :=500000;

    Dmod.Dataset2Excel.HeaderFont.Name:='Times New Roman';
    Dmod.Dataset2Excel.HeaderFont.Size:=12;
    Dmod.Dataset2Excel.DetailFont.Name:='Times New Roman';
    Dmod.Dataset2Excel.DetailFont.Size:=10;
    Dmod.Dataset2Excel.DetailBorderStyle:=BorderStyleSingleThin;
    Dmod.Dataset2Excel.HeaderBorderStyle:=BorderStyleSingleThick;
    Dmod.Dataset2Excel.ExportDataset;
  for i := 1 to  WorkBook.Sheets.Count do
    begin
      WorkBook.Sheets[i].Activate;
      WorkBook.ActiveSheet.Selected:=true;
      WorkBook.ActiveSheet.Cells.EntireColumn.AutoFit;
      WorkBook.ActiveSheet.FreezePanes(1,0,1,1);

      for j := 1 to 12 do WorkBook.ActiveSheet.Cells.Item[1,j].Value:='';
      WorkBook.ActiveSheet.Cells.Item[1,1].Value:='заза';
      WorkBook.ActiveSheet.Cells.Item[2,1].Value:='~ℓo√ﻉ~ ♥ I ℓ٥ﻻ ﻉ√٥υ ♥牡 マ キ グ ナ ル フ ァ 系 路 克 瑞 大 阪 市 立 学♠ ♡ ♢ ♣ ♤ ♥ ♦ ♧';
      WorkBook.ActiveSheet.Cells.Item[3,1].Value:='за½ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞☚ ☛ ☜ ☝ ☞ ☟✌➳ ❤ ❣ ❢ ஐ இ ఞ ఎ യ✁ ✄ ✉✔ ✓ ☐ ☑ ☒✪ ★ ☆';
      WorkBook.ActiveSheet.Cells.Item[4,1].Value:='за〠 ☯ ☮ ☭ ☄☊ ☣ ☢ ☤ ☬ ☫☪ ☨ ☦ ☧ ☥〄 〩 ❦ ❧ ♨☸☠✆ ☎ ☏‼ ⌚ ⌛ ☡ �';
      WorkBook.ActiveSheet.Cells.Item[5,1].Value:='за☂♂☻♥╝╝╝ЬЬЬ╕╕╕◘◘◘♣♠♦○○♣♦☻☺000♥♣M♣♣55U╒◙j[♀+♂=♥]™͡๏̯͡๏ ‡ ╥ █ ◘ (•̪●)';
      WorkBook.ActiveSheet.Cells.Item[6,1].Value:='за◗ ◖ ◕ ◔ ◓ ◒ ▲ △ ▴ ▵ ▶ ▷ ▸ ▹ ► ▻ ▼ ▽ ▾ ▿ ◀ ◁ ◂ ◃ ◄ ◅ ◆ ◇ ◈ ◉ ◊ ○ ◌ ◍ ◎ ● ◐ ◑';
      WorkBook.ActiveSheet.Cells.Item[7,1].Value:='за ◯ ◮ ◭ ◬ ◫ ◪ ◩ ◨ ◧■ □ ▢ ▣ ▤ ▥ ▦ ▧ ▨ ▩ ▪ ▫ ▬ ▭▮ ▯ ▰ ▱ ▓ ▒ ░ ▐ ▏ ▎ ▍ ▌ ▋ ▊ ▉ █';
      WorkBook.ActiveSheet.Cells.Item[8,1].Value:='за ▂ ▃ ▄ ▅ ▆ ▇ █ ▒ ▓    ╴ ╵ ╶ ╷ ╸ ╹ ╺ ╻ ╼ ╽ ╾ ╿ ┇ ┆ ┅ ┄ ┃│ ╇ ╆ ╅ ╄ ╃';
      WorkBook.ActiveSheet.Cells.Item[9,1].Value:='за╂ ╁ ╀ ┿ ┾ ┽ ┼ ┻ ┺ ┹ ┸ ┷ ┶ ┵ ┴ ┳ ┲ ┱ ┰ ┯ ┮ ┭ ┬ ┫ ┪ ┩ ┨ ┧ ┦ ┥ ┤ ┣ ┢';
      WorkBook.ActiveSheet.Cells.Item[10,1].Value:='за┡ ┠ ┟ ┞ ┝ ├ ┛ ┚ ┙ ┘ ┗ ┖ ┕ └ ┓ ┒ ┑┐ ┏ ┎ ┍ ┌ ┋ ┊ ┉ ┈ ┇ ┆ ┅╬ ╫ ╪ ╩ ╨ ╧';
      WorkBook.ActiveSheet.Cells.Item[11,1].Value:='за╦ ╥ ╤ ╣ ╢ ╡╠ ╟ ╞ ╝ ╜╛ ╚ ╙ ╘╗ ╖ ╕╔ ╓ ╒║ ═ ╏╎ ╍ ╌╋ ╊ ╉╈ ༼ ༽ ༾ ༿ ‣ •';
      WorkBook.ActiveSheet.Cells.Item[12,1].Value:='за╦ ╥ ╤ ╣ ╢ ╡╠ ╟ ╞ ╝ ╜╛ ╚ ╙ ╘╗ ╖ ╕╔ ╓ ╒║ ═ ╏╎ ╍ ╌╋ ╊ ╉╈ ༼ ༽ ༾ ༿ ‣ •';
      WorkBook.ActiveSheet.Cells.Item[13,1].Value:='⑊ ⑉ ⑈ ⑇ ⑆ 〯 〮 〭 〬 ◦ 〫 〪 ❝ ❜ ❛ ❞ ₪ ۩ ๑ ¤ ۞‾ □ ▪ ▫ ◊ ● ◦  • ۝ ʻ ʼ ʽ ʾ ʿ ˀ ˁ ˂ ˃ ˄ ˅ ˆ ˇ ˈ ˉ ˊ ˋ';
      WorkBook.ActiveSheet.Cells.Item[14,1].Value:=' ˌ ˍ ˎ ˏ ː ˑ ˒ ˓ ˔ ˕ ˖ ˗˘ ˙ ˚ ˛ ˜ ˝ ˞ ˠ ˡ ˡ ˢ ˣ ˤ̙̘̗̖̔̒̓̑̐̏̎̍̚̕ ̌ ̋ ̊ ̉ ̈ ̇ ̆ ̅ ̄ ̃ ̂ ́ ̀ ˩ ˨ ˧ ˦ ˥̡';
      WorkBook.ActiveSheet.Cells.Item[15,1].Value:='&#1593;&#1578;&#1576;&#1585; &#1585;&#1601;&#1610;&#1602;&#1577;, &#1571;&#1606;&#1575; &#1571;&#1606;&#1578; &#1610;&#1578;&#1604;&#1602;&#1617;&#1609; &#1578;&#1576;&#1581;&#1579; &#1604;, &#1608;&#1610;&#1581;&#1575;&#1601;&#1592; &#1571;&#1606;&#1578; &#1610;&#1587;&#1603;&#1578; &#9660;&#9660; &#9668;&#9668; &#9658;&#9658; &#9632; « » ©©© &#9617;&#9617;&#9617;&#9617;&#9617; << >> % $$$ ### № @@@ """ ! ~ `';
      WorkBook.ActiveSheet.Cells.Item[16,1].Value:='&#9794;&#9787;&#9829;&#9565;&#9565;&#9565;ЬЬЬ&#9557;&#9557;&#9557;&#9688;&#9688;&#9688;&#9827;&#9824;&#9830;&#9675;&#9675;&#9827;&#9830;&#9787;&#9786;000&#9829;&#9827;M&#9827;&#9827;55U&#9554;&#9689;j';
      WorkBook.ActiveSheet.Cells.Item[17,1].Value:='&#3663;&#865;&#815;&#3663; &#26031;&#22374;&#23612;&#26031;&#20250;&#25991; &#31038; &#9552;&#9580; &#9580;&#9552; &#1769;&#1758;&#1769; &#9733;&#9733;&#9733; &#9600;&#9604; &#9600;&#9604; &#9600;&#9604; &#9600;&#9604; &#1758; &#1758; &#1758; &#2951;&#2951;&#2951; ®®® &#8730;&#8730;&#8730; &#3665;&#1769;&#1769;&#3665; ¤¤¤ &#9794;&#9794;&#9794; ••• &#12484;&#12484;&#12484; &#9679;•&#9679;•';
      WorkBook.ActiveSheet.Cells.Item[18,1].Value:='&#9788;&#9788; &#1593;&#1578;&#1576;&#1585; &#1585;&#1601;&#1610;&#1602;&#1577;, &#1571;&#1606;&#1575; &#1571;&#1606;&#1578; &#1610;&#1578;&#1604;&#1602;&#1617;&#1609; &#1578;&#1576;&#1581;&#1579; &#1604;, &#1608;&#1610;&#1581;&#1575;&#1601;&#1592; &#1571;&#1606;&#1578; &#1610;&#1587;&#1603;&#1578; ¶ ¶ ¶ &#9660;&#9660; &#9668;&#9668; &#9658;&#9658; &#9632; « » ©©© &#9617;&#9617;&#9617;&#9617;&#9617; << >> % $$$ ### № @@@';
      WorkBook.ActiveSheet.Cells.Item[19,1].Value:=' &#9825;&#9825;&#9825; &#9829;&#9829;&#9829; &#4326;&#4326;&#4326; &#9792;&#9792;&#9792; &#9835;&#9835;&#9835; &#8362;&#8362;&#8362; &#248;&#248;&#248; &#9834;&#9834;&#9834; &#2960;&#2960;&#2960; &#8597;&#8597;&#8597; &#732;”*°•..•°*”&#732; &#1513;&#1513;&#1513;&#1513;&#1513; &#9787;&#9787;&#9787; &#1578; &#1578; &#1578; &#729;&#729;&#903; . &#2768; &#9580;&#9580;&#9580;';
      WorkBook.ActiveSheet.Cells.Item[20,1].Value:='&#3663;&#815;&#865;&#3663; &#26031;&#22374;&#23612;&#26031;&#20250;&#25991; &#31038; &#9552;&#9580; &#9580;&#9552; &#1769;&#1758;&#1769; &#9733;&#9733;&#9733; &#9600;&#9604; &#9600;&#9604; &#9600;&#9604; &#9600;&#9604; &#1758; &#1758; &#1758; &#2951;&#2951;&#2951; ®®® &#8730;&#8730;&#8730; &#3665;&#1769;&#1769;&#3665; ¤¤¤ &#9794;&#9794;&#9794; ••• &#12484;&#12484;&#12484;';
      WorkBook.ActiveSheet.Cells.Item[21,1].Value:='&#9687; &#9686; &#9685; &#9684; &#9683; &#9682; &#9650; &#9651; &#9652; &#9653; &#9654; &#9655; &#9656; &#9657; &#9658; &#9659; &#9660; &#9661; &#9662; &#9663; &#9664; &#9665; &#9666; &#9667; &#9668; &#9669; &#9670; &#9671; &#9672; &#9673; &#9674; &#9675; &#9676; &#9677; &#9678; &#9679; &#9680; &#9681; &#9711; &#9710; &#9709; &#9708; &#9707; &#9706;';
      WorkBook.ActiveSheet.Cells.Item[22,1].Value:=' &#9482; &#9481; &#9480; &#9479; &#9478; &#9477;&#9580; &#9579; &#9578; &#9577; &#9576; &#9575; &#9574; &#9573; &#9572; &#9571; &#9570; &#9569;&#9568; &#9567; &#9566; &#9565; &#9564;&#9563; &#9562; &#9561; _';
      WorkBook.ActiveSheet.Cells.Item[23,1].Value:=' &#9521; &#9520; &#9519; &#9518; &#9517; &#9516; &#9515; &#9514; &#9513; &#9512; &#9511; &#9510; &#9509; &#9508; &#9507; &#9506; &#9505; &#9504; &#9503; &#9502; &#9501; &#9500; &#9499; &#9498; &#9497; &#9496; &#9495; &#9494; &#9493; &#9492; &#9491; &#9490; &#9489;&#9488; &#9487; &#9486; &#9485; &#9484; &#9483;';
      WorkBook.ActiveSheet.Cells.Item[24,1].Value:='[&#9792;+&#9794;=&#9829;]TM&#865;&#3663;&#865;&#815;&#3663; ‡ &#9573; &#9608; &#9688; (•&#810;&#9679;)';

    end;
  except //Проппуск ошибок

  end;
end;
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862712
vector0001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger,

Пользователь ничего не будет но если в тексте данные символы попадаются надо их удалить, да так чтобы знать что тут символ был необычный, ибо они в Excel не выгружается. А надо это ибо в базе значения могут иметь подобный символы
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862773
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vector0001> WorkBook.ActiveSheet.Cells.Item[1,1].Value:='caca';

А какой код у этого символа?

P.S. Вообще, общая суть проблемы и для чего "это" надо - так
и осталось непонятным. Что за "нужные, но неотображаемые
управляющие символы", почему (и как) они хранятся в БД,
зачем их в Excel (в отчете) отображать - непонятно.

P.P.S. Я лично и в Excel, и в Word "рисовал" графики
с символами-стрелочками, но это именно я выбирал
символы, а не "неизвестно какие" из БД.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
    #39862800
vector0001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,
Это символы первые 36 кажется таблицы юникод
https://unicode-table.com/ru
Надо все это ибо данные в базе по именам из соц сети и там используется разные символы unicode

конкретно этот символ это DC1 номер по порядку 17. Excel многие эти символы понимает у него есть функция "Юнисимв()"
Но я понимаю так что Delphi передает на экспорт данные в формате управляющих символов а XML их пытается как бы исполнить
Вот думаю может их как нибудь перехватывать и передавать в том виде в каком Excel понимает или заменять на символ который явно укажет что тут не прочитались данные .
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Выгрузка SQL запроса в xlsx без использования OLE на Delphi XE8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]