Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel / 25 сообщений из 26, страница 1 из 2
18.10.2013, 09:15
    #38432279
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Здравствуйте, прошу помощи в решении вопроса.
Есть таблица в апексе, которая создается из апекс-коллекции, далее из данной таблицы требуется выгрузка в excel, при этом каждая строка таблицы должна записываться на отдельном листе excel.

Принцип работы такой:
1) в верхней строке пользователь вводит число(номер транзакции), жмет Enter
2) после нажатия Enter появляются данные по транзакции, он их проверяет и жмет Добавить
3) далее данная запись добавляется в Apex коллекцию (нижний репорт). и так происходит огромное кол-во раз
4) как только пользователь собрал все транзакции, он жмет "На печать" и тут должно происходит то, что я написал в шапке, то есть каждая строка должна делаться на новом листе (100 строк = 100 страниц)

XML файл создать проблем не будет, мне лишь нужно чтобы вы подсказали синтаксис как зациклить генерирование страниц по количеству строк апекс-коллекции.
Приветствуются другие решения.
Программа на скриншоте.
...
Рейтинг: 0 / 0
18.10.2013, 09:27
    #38432296
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Забыл добавить:
Версия Apex 4.1.0.00.32 , статус VALID
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
...
Рейтинг: 0 / 0
18.10.2013, 15:53
    #38433056
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
ап теме, очень срочно нужно решение, кто что может надумать пишите пожалуйста.
...
Рейтинг: 0 / 0
18.10.2013, 16:32
    #38433140
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansion,

приходишься по коллекции обычным циклом в теле цикла пишешь свой генератор страниц
Синтаксис http://www.firststeps.ru/sql/oracle/r.php?49
...
Рейтинг: 0 / 0
18.10.2013, 18:23
    #38433346
Mr_Frost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansion,непонятно, как вы вообще собираетесь по кнопке Печать вызывать Excel?
Из постановки вопроса догадаться об этом очень сложно.
Напишите, каким способом планируется запускать Excel - как pl-sql процедуру, Report Printing или как-то еще?
...
Рейтинг: 0 / 0
21.10.2013, 10:12
    #38435106
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mr_Frost,
создал шаблончик в excel в формате xml для plsql'я, туда же сунул запросы, которые тянут информацию. вообщем как обычно делается выгрузка для апекса plsql'я

далее создал в апексе процесс, который выполняется в plsql, назначил на процесс кнопку "На печать".

процесс огромный, 1к+ строк
...
Рейтинг: 0 / 0
21.10.2013, 14:21
    #38435543
Mr_Frost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Ответ только сильнее все запутал... :-)
что за шаблончик в Excel, какие запросы, которые тянут информацию, о чем вообще речь?
...
Рейтинг: 0 / 0
21.10.2013, 17:19
    #38435895
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mr_Frost,

ну смотри, чтобы сделать выгрузку из апекса в excel нужно сначала этот подготовить шаблон, на примере которого, будет формироваться отчет в excel. мы создаем excel фаил, который будет шаблоном, сохраняем, меняем формат файла на XML, и открываем его через Notepad. далее копируем весь xml код и пастим его в девелопер. шаблон готов.
далее внутри шаблона уже корректируем, вставляем переменные, запросы и так далее...
...
Рейтинг: 0 / 0
21.10.2013, 20:25
    #38436147
Mr_Frost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansion,

суть понятна.
1. loggin же сказал - нужно открыть цикл по курсору из апекс-коллекции.
внутри цикла формируешь тэг
<Worksheet ss:Name="Лист1">
<Worksheet ss:Name="Лист2">
<Worksheet ss:Name="Лист3"> и т.д.

примерно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
declare
 my_xml clob;
begin
  my_xml := '<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 ...
...
....
.....
';
  for rec in (select *
from apex_collections ac
where ac.collection_name = 'my_collection'
order by ac.seq_id) loop
my_xml := my_xml || '<Worksheet ss:Name="Лист' || rec.seq_id || '">';
/* здесь содержимое листа */
my_xml := my_xml || ' </Worksheet>';
end loop;
end;



2. Только из процесса апекс это не будет работать, нужно перенести текст в хранимую процедуру
...
Рейтинг: 0 / 0
22.10.2013, 14:32
    #38436973
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mr_Frost,

спасибо за помощь, разобрался
...
Рейтинг: 0 / 0
23.10.2013, 10:05
    #38437912
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mr_Frost,

В процессе это будет работать. Нужно добавить несколько строк для формирования заголовка, в котором будет указано что это файл. И выставить у процесса Load before header... что-то такое. не помню уже.
...
Рейтинг: 0 / 0
23.10.2013, 16:20
    #38438609
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Возник еще один вопрос.
Я создал цикл для апекс коллекции, строки, как и нужно, выгружаются в excel каждая на отдельной странице, НО если строк больше чем 4, то при выгрузке прявляется ошибка ORA-06502: PL/SQL: numeric or value error.
Это значит что где-то происходит арифметическая ошибка, но где?
Я попробовал несколько раз разные значения выгружать и везде упирался на том что ошибка возникает именно если строк больше чем 4. 4 строки выгружаются на отдельных листах без ошибок, а 5 уже ORA-06502: PL/SQL: numeric or value error.
где косяк? есть ли ограничение на генерирование листов excel?

вот код процедуры выгрузки:
Код: plsql
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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
create or replace procedure xx_konverts(gg number) as
peremen clob;  --переменная для записи текста в BLOB переменную
myfile blob;      --BLOB переменная, - собственно это и будет файл
myfile_name VARCHAR2(100);  -- :='АКТ о списании недостачи.xls';

begin

peremen:='
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Author>username</Author>
  <LastAuthor>username</LastAuthor>
  <LastPrinted>2013-10-23T11:38:00Z</LastPrinted>
  <Created>2008-05-12T12:21:57Z</Created>
  <LastSaved>2013-10-23T11:31:45Z</LastSaved>
  <Version>14.00</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <SupBook>
   <Path>&#0;</Path>
  </SupBook>
  <WindowHeight>6720</WindowHeight>
  <WindowWidth>13350</WindowWidth>
  <WindowTopX>690</WindowTopX>
  <WindowTopY>-165</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="s16" ss:Name="Финансовый">
   <NumberFormat
    ss:Format="_-* #,##0.00_р_._-;\-* #,##0.00_р_._-;_-* &quot;-&quot;??_р_._-;_-@_-"/>
  </Style>
  <Style ss:ID="s62">
   <Font ss:FontName="Arial Cyr" x:CharSet="204"/>
   <NumberFormat ss:Format="@"/>
  </Style>
  <Style ss:ID="s63">
   <Alignment ss:Vertical="Bottom"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s65">
   <Alignment ss:Vertical="Bottom"/>
  </Style>
  <Style ss:ID="s66">
   <Alignment ss:Vertical="Bottom"/>
   <Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s68">
   <Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s70">
   <Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="8"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s71">
   <Alignment ss:Vertical="Center"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="48" ss:Color="#FF8080"
    ss:Bold="1"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s72">
   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
   <Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s73">
   <Alignment ss:Vertical="Top"/>
  </Style>
  <Style ss:ID="s75">
   <Alignment ss:Vertical="Top"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s76">
   <Alignment ss:Vertical="Top"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="16"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s77">
   <Alignment ss:Horizontal="Center" ss:Vertical="Top"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="13" ss:Bold="1"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s78">
   <Alignment ss:Vertical="Top"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="1"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s79">
   <Alignment ss:Horizontal="Left" ss:Vertical="Top"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="8"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s81" ss:Parent="s16">
   <Alignment ss:Horizontal="Left" ss:Vertical="Top"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="8"/>
   <NumberFormat ss:Format="0"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s82" ss:Parent="s16">
   <Alignment ss:Vertical="Bottom"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
   </Borders>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Color="#800080" ss:Bold="1"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s83">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="8"/>
   <Protection x:HideFormula="1"/>
  </Style>
  <Style ss:ID="s84">
   <Borders/>
  </Style>
  <Style ss:ID="s85">
   <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
  </Style>
 </Styles>
  ';
myfile  := utl_i18n.string_to_raw(peremen, 'AL32UTF8');
peremen:='

';
dbms_lob.append( myfile, utl_i18n.string_to_raw( peremen, 'AL32UTF8') );--дописываем данные в переменную
for rec in (select c001, c002, c003, c004, c005, c006, c007, c008
from apex_collections ac
where ac.collection_name='TOPRINT'
order by c008 desc)
loop
 peremen:= peremen||
 '<Worksheet ss:Name="№ '||rec.c004||'">
  <Names>
   <NamedRange ss:Name="Print_Area" ss:RefersTo="=!R1C1:R11C9"/>
  </Names>
  <Table ss:ExpandedColumnCount="35" ss:ExpandedRowCount="12" x:FullColumns="1"
   x:FullRows="1">
   <Column ss:Index="3" ss:AutoFitWidth="0" ss:Width="90"/>
   <Column ss:AutoFitWidth="0" ss:Width="108"/>
   <Column ss:AutoFitWidth="0" ss:Width="50.25"/>
   <Column ss:AutoFitWidth="0" ss:Width="72"/>
   <Column ss:AutoFitWidth="0" ss:Width="56.25" ss:Span="2"/>
   <Column ss:Index="10" ss:AutoFitWidth="0" ss:Width="90"/>
   <Column ss:AutoFitWidth="0" ss:Width="38.25"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="85.5"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="87"/>
   <Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="72.75"/>
   <Row ss:AutoFitHeight="0" ss:Height="15">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="15">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="15">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="24.75">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s65"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="68.25">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s66"/>
    <Cell ss:StyleID="s66"/>
    <Cell ss:StyleID="s66"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="39">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:MergeAcross="4" ss:MergeDown="1" ss:StyleID="s68"><Data
      ss:Type="String">' || rec.c001 || '</Data></Cell>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="15.75" ss:Hidden="1">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="24.75">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:MergeAcross="4" ss:MergeDown="1" ss:StyleID="s70"><Data
      ss:Type="String">' || rec.c002 || '</Data></Cell>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="16.5">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="29.25">
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s63"/>
    <Cell ss:StyleID="s71"/>
    <Cell ss:StyleID="s66"/>
    <Cell ss:StyleID="s72"/>
    <Cell ss:StyleID="s72"/>
    <Cell ss:StyleID="s72"/>
    <Cell ss:StyleID="s72"/>
    <Cell ss:Index="12" ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="34.5" ss:StyleID="s73">
    <Cell ss:StyleID="s75"/>
    <Cell ss:StyleID="s75"/>
    <Cell ss:StyleID="s75"/>
    <Cell ss:StyleID="s76"/>
    <Cell ss:StyleID="s77"><Data ss:Type="String">' || rec.c003 || '</Data></Cell>
    <Cell ss:StyleID="s78"/>
    <Cell ss:StyleID="s79"><Data ss:Type="Number">' || rec.c004 || '</Data></Cell>
    <Cell ss:StyleID="s81"><Data ss:Type="Number">' || rec.c005 || '</Data></Cell>
    <Cell ss:StyleID="s81"><Data ss:Type="Number">' || rec.c006 || '</Data></Cell>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
    <Cell ss:StyleID="Default"/>
   </Row>
   <Row>
    <Cell ss:Index="4" ss:StyleID="s82"><Data ss:Type="Number">' || rec.c007 || '</Data></Cell>
    <Cell ss:StyleID="s83"><Data ss:Type="String">Контрольная сумма по документу</Data></Cell>
    <Cell ss:StyleID="s84"/>
    <Cell ss:Index="9" ss:StyleID="s85"/>
   </Row>
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0"/>
    <Footer x:Margin="0"/>
    <PageMargins x:Bottom="0" x:Left="0" x:Right="0" x:Top="0"/>
   </PageSetup>
   <FitToPage/>
   <Print>
    <ValidPrinterInfo/>
    <PaperSizeIndex>9</PaperSizeIndex>
    <Scale>92</Scale>
    <HorizontalResolution>600</HorizontalResolution>
    <VerticalResolution>600</VerticalResolution>
   </Print>
   <TabColorIndex>9</TabColorIndex>
   <ShowPageBreakZoom/>
   <PageBreakZoom>100</PageBreakZoom>
   <Selected/>
   <Panes>
    <Pane>
     <Number>3</Number>
     <ActiveCol>6</ActiveCol>
    </Pane>
   </Panes>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
  ';
peremen:=peremen || ' </Worksheet>
';
end loop;
dbms_lob.append( myfile, utl_i18n.string_to_raw( peremen, 'AL32UTF8') );--дописываем данные в переменную
peremen:='
</Workbook>
';
dbms_lob.append( myfile, utl_i18n.string_to_raw( peremen, 'AL32UTF8') );--дописываем данные в переменную
--теперь когда переменная с файлом готова выгрузим её
  myfile_name:='konverts SE-2.xls';
  owa_util.mime_header(wwv_flow_utilities.get_excel_mime_type, false); --обозначим тип файла EXCEL
  htp.p('Content-Length: ' || dbms_lob.getlength(myfile)); --... и размер файла
  htp.p('Content-disposition: attachment; filename="' || myfile_name || '";'); --название файла
  owa_util.http_header_close;
  wpg_docload.download_file(myfile);
end xx_konverts;
...
Рейтинг: 0 / 0
23.10.2013, 18:22
    #38438837
Mr_Frost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansion,
Во-первых, кроме номера ошибки должен быть еще номер строки, на которой возникает ошибка.
Во-вторых, peremen хоть и объявлена как clob, но когда ты делаешь
peremen := peremen || (видимо из моего примера), то используя конкатенацию, фактически clob
превращаешь в varchar2 размером в 32К. Т.е. примерно на 5-ой записи peremen становится более 32К.
Тебе нужно вместо || использовать dbms_lob.append.
...
Рейтинг: 0 / 0
24.10.2013, 08:46
    #38439253
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mr_Frost,

снова выручил, спасибо
...
Рейтинг: 0 / 0
24.10.2013, 10:27
    #38439360
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Вопрос конечно для извращенцев, но всё-таки... как вставить картинку gif в XML формат? я всё с той же программой вожусь и при выгрузке в excel там должен быть логотип компании. я погуглил, но не понял что за base64 кодирование, кто может более простым и понятным языком объяснить и привести простой пример как вставить gif(можно другую: bmp, jpeg...) картинку в XML формат
...
Рейтинг: 0 / 0
24.10.2013, 11:11
    #38439466
Mit
Mit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Никак. Я думаю, что можно взять пакет отсюда http://technology.amis.nl/?s=as_xlsx и попробовать доточить его, чтобы была возможность вставлять картинку.
...
Рейтинг: 0 / 0
24.10.2013, 11:20
    #38439487
loggin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansionВопрос конечно для извращенцев, но всё-таки... как вставить картинку gif в XML формат? я всё с той же программой вожусь и при выгрузке в excel там должен быть логотип компании. я погуглил, но не понял что за base64 кодирование, кто может более простым и понятным языком объяснить и привести простой пример как вставить gif(можно другую: bmp, jpeg...) картинку в XML формат

Берешь логотип, грузишь его сюда http://netcoding.ru/services/online-generator-base64/
Дальше в нужное место запихиваешь тот код который у тебя получился.
...
Рейтинг: 0 / 0
24.10.2013, 11:47
    #38439564
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
loggin,

получился код такого типа:
Код: plsql
1.
 data:image/png;base64,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 


можно синтаксис, как правильно его вставить в какие теги, xml вроде не html, тут <img> не прокатит?
вот у меня есть ячейка, с цифрой "1", нужно чтобы на этом месте был логотип
Код: plsql
1.
 <Cell ss:StyleID="s63"><Data ss:Type="Number">1</Data><NamedCell 


код картинки вообще в скобках cell прописывать или куда?
...
Рейтинг: 0 / 0
24.10.2013, 12:26
    #38439648
Mit
Mit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Где Вы вообще нашли что xml таблица поддерживает картинки?
...
Рейтинг: 0 / 0
24.10.2013, 14:24
    #38439919
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mit,

лазейка с помощью base64 декодера.
...
Рейтинг: 0 / 0
25.10.2013, 11:24
    #38440934
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
ну что, никто не знает как вставить код картинки в xml код?
...
Рейтинг: 0 / 0
25.10.2013, 11:40
    #38440963
Mr_Frost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansionну что, никто не знает как вставить код картинки в xml код?
mansion, что тебе мешает взять свой шаблон в Excel, вставить в него картинку,
сохранить в xml и увидеть в том месте, где должна быть картинка:

<img width=3D36 height=3D64
src=3D"file7317.files/image002.gif" v:shapes=3D"_x0000_s1026">

а ниже еще что-то типа такого:

------=_NextPart_01CE57CB.FA2E77D0
Content-Location: file:///C:/69C8F3E5/file7317.files/image002.gif
Content-Transfer-Encoding: base64
Content-Type: image/gif

R0lGODdhJABAAHcAACH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACwAAAAAJABAAIf///+9
IRDmShDeYxCljJzeCBDWIRCUKRlSKRnvKRnOnFLvnFLvlN4Qa1oQ794Qa94Q71oQKVoQrd4QKd4Q
...
...
...
...
Рейтинг: 0 / 0
25.10.2013, 12:04
    #38441018
mansion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
Mr_Frost,

когда сохраняешь xml с картинкой внутри, возникает предупреждение о удалении всех несопостовимых компонентов с форматом xml
картинка не сохраняется
...
Рейтинг: 0 / 0
25.10.2013, 13:16
    #38441165
Mr_Frost
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansion, да, действительно, у меня не xml, а html.
Т.е. все тоже самое, можно сохранить шаблон Excel
не в xml, а в html, там можно и картинку сохранить, чем не вариант?
...
Рейтинг: 0 / 0
29.10.2013, 11:48
    #38444680
Mit
Mit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel
mansionMr_Frost,

когда сохраняешь xml с картинкой внутри, возникает предупреждение о удалении всех несопостовимых компонентов с форматом xml
картинка не сохраняется

А я Вам про это говорил выше. Нельзя в xml таблицу вставить картинку.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Выгрузка из Apex в Excel с применением цикла генерирования новых листов Excel / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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