powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JSP --> *.xls
12 сообщений из 12, страница 1 из 1
JSP --> *.xls
    #34200692
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всем доброго времени суток!

сразу оговорюсь и поиском пользовался и гуглил, но не нашел подробные ответы на мои вопросы:

1. Сформировалась jsp-страничка (приложение на JSF), в ней просто таблица, хочеться под этой табличкой сделать кнопочку "сформировать таблицу в документе Excel". Как это лучше реализовать?


2. Может кто знает про какую-нить специальную библиотеку, которая упрощает эту процедуру?

Всем заранее спасибо.
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34200724
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делается очень просто.

выдаете на выход ОБЫЧНУЮ html таблицу, но content-type проставляете, как будто выдаете xls. там что-то типа application/excel, не помню точно. Excel прекрасно схавает данную комбинацию
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34200838
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот тока вопрос - как будет выглядеть кнопочка <h:commandButton>? href не покатит
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34200868
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял...
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34200900
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
От мой стрый сорц
Код: plaintext
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.
<%@ page errorPage="/wdk/errorhandler.jsp" %>
<%@ taglib uri="/WEB-INF/tlds/dmform_1_0.tld" prefix="dmf" %>
<%@ page  import ="com.documentum.web.formext.component.Component,
                 com.documentum.web.form.control.databound.TableResultSet,
                 java.util.StringTokenizer,
                 nvg.documentum.reports.BaseServiceReportComponent"%>
<%
    request.setCharacterEncoding("UTF-8");
    StringTokenizer st =  new  StringTokenizer(request.getRequestURI(),"/");
    String fileName = "report";
     while (st.hasMoreTokens()){
        fileName = st.nextToken();
    }
     if (fileName.length()> 4 ){
        fileName = fileName.substring( 0 , fileName.length()- 4 );
    }
    fileName += "_" + session.getLastAccessedTime();
    response.setHeader("Content-disposition","attachment; filename="+fileName+".xls");
    response.setContentType("application/vnd.ms-excel");

%>
<?xml version="1.0"?>
<!--
<dmf:webform formclass="nvg.documentum.reports.BaseServiceReportComponent" nlsclass="nvg.reports.PrintReportNlsProp"/>
<%
    BaseServiceReportComponent prj = (BaseServiceReportComponent) pageContext.getAttribute(Component.FORM, PageContext.REQUEST_SCOPE);
    request.setCharacterEncoding("UTF-8");
    TableResultSet trs = prj.getData();
%>
<dmf:form>
</dmf:form>
-->
<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>apilas</Author>
  <LastAuthor>apilas</LastAuthor>
  <Created> 2004 - 08 -18T08: 50 :12Z</Created>
  <LastSaved> 2004 - 08 -18T08: 56 :15Z</LastSaved>
  <Company>nvg</Company>
  <Version> 10 . 4219 </Version>
 </DocumentProperties>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight> 9030 </WindowHeight>
  <WindowWidth> 15120 </WindowWidth>
  <WindowTopX> 120 </WindowTopX>
  <WindowTopY> 30 </WindowTopY>
  <RefModeR1C1/>
  <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="s41">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
   </Borders>
   <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s42">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2"/>
   </Borders>
   <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s46">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
   </Borders>
   <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"/>
  </Style>
  <Style ss:ID="s47">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2"/>
    <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
   </Borders>
   <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"/>
  </Style>
  <Style ss:ID="s50">
   <Alignment ss:Vertical="Bottom"/>
  </Style>
  <Style ss:ID="s52">
   <Alignment ss:Vertical="Bottom"/>
   <Borders>
    <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"/>
   </Borders>
  </Style>
  <Style ss:ID="s55">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"
    ss:Size="18" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s58">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
   <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"
    ss:Size="12" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s22">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
  </Style>
  <Style ss:ID="s24">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="18" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s26">
   <Alignment ss:Horizontal="Center" ss:Vertical="Center"/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204" ss:Size="12" ss:Bold="1"/>
  </Style>
    <Style ss:ID="s39">
     <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1"/>
     <Borders>
      <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2"/>
      <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2"/>
     </Borders>
     <Font ss:FontName="Times New Roman" x:CharSet="204" x:Family="Roman"/>
     <NumberFormat/>
    </Style>

 </Styles>
 <Worksheet ss:Name="complete_report_1">
<%
     int  expandedrowcount =  12 ;
    expandedrowcount += trs.getResultsCount();
%>
  <Table ss:ExpandedColumnCount="24" ss:ExpandedRowCount="<%=expandedrowcount%>" x:FullColumns="1"
   x:FullRows="1">
   <Column ss:AutoFitWidth="0" ss:Width="40"/>
   <Column ss:AutoFitWidth="0" ss:Width="120"/>
   <Column ss:AutoFitWidth="0" ss:Width="120"/>
   <Column ss:AutoFitWidth="0" ss:Width="70"/>
   <Column ss:AutoFitWidth="0" ss:Width="70"/>
.......
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34200989
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deadyне понял...
вот jsp, которая имеет таблицу и соответственно эту таблицу надо експортнуть в Excel (создать файл Excel):

..........................
.........................
...........................
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.stateHeader}"/>
</f:facet>
<h:outputText value="#{customer.State}"/>
</h:column>
</h:dataTable>
<h:commandButton value="to Excel" вот здесь то что писать? />
</h:form>
</body>
</f:view>
</html>
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34201007
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в рамках JSF:
написать action="#{foo.createXSL}"
в методе сформировать данные и отдать на растерзание jsp-шке (в формате jsf), которая сформирует таблицу. предварительно выставить в том же методе контент тип

с использованием сервлета:
вместо commandButton вставить или h:outputLink с сылкой на сервлет, или кнопку с javascript-ом, которая отправит на сервлет. в сервлете выполнить те же действия и стравить классической jsp
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34201053
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deadyв рамках JSF:
написать action="#{foo.createXSL}"
в методе сформировать данные и отдать на растерзание jsp-шке (в формате jsf), которая сформирует таблицу. предварительно выставить в том же методе контент тип

с использованием сервлета:
вместо commandButton вставить или h:outputLink с сылкой на сервлет, или кнопку с javascript-ом, которая отправит на сервлет. в сервлете выполнить те же действия и стравить классической jsp

огромное спасибо, вот бы есче примерчик работающий так и цены бы не было )))
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34201089
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
реализую 2ой вариант. 1ый пишется так же.

на форме:
Код: plaintext
1.
<h:outputLink action="/report/excel/table.do" value="Сгенерировать отчет"/>

в сервлете, замапленном на /report/excel/table.do:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 public   void  doGet(req, resp) {
   resp.setContentType("application/excel"); // !!!! здесь выставить правильный тип, я вписал от балды
   List dataRows = ...; // получаем данные для таблицы
   req.setAttribute("data", dataRows);
   RequestDispatcher disp = request.getRequestDispatcher("/report/excel/renderer.jsp");
   disp.forward(req, resp);
}

это jsp /report/excel/renderer.jsp, генерирующая таблицу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<html>
<body>
<% List data = req.getAttribute("data");
//тут цикл по записям, думаю, не надо показывать как его написать
%>
</body>
</html>


осталось только все оформить красиво (импорты там всякие итп). Ничего сложного нет
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34201090
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на форме:
Код: plaintext
1.
2.
3.
<h:outputLink value="/report/excel/table.do">
   <h:outputText value="Сгенерировать отчет"/>
</h:outputLink>
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34201156
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jsfmania 2. Может кто знает про какую-нить специальную библиотеку, которая упрощает эту процедуру?

Знаем и давно пользуемся. Пользователей очень устраивает.

http://]http://displaytag.sourceforge.net/11/
...
Рейтинг: 0 / 0
JSP --> *.xls
    #34201162
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://displaytag.sourceforge.net/11/
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JSP --> *.xls
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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