Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JSP --> *.xls / 12 сообщений из 12, страница 1 из 1
14.12.2006, 16:38:17
    #34200692
jsfmania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSP --> *.xls
всем доброго времени суток!

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

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


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

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

выдаете на выход ОБЫЧНУЮ html таблицу, но content-type проставляете, как будто выдаете xls. там что-то типа application/excel, не помню точно. Excel прекрасно схавает данную комбинацию
...
Рейтинг: 0 / 0
14.12.2006, 17:10:07
    #34200838
jsfmania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSP --> *.xls
вот тока вопрос - как будет выглядеть кнопочка <h:commandButton>? href не покатит
...
Рейтинг: 0 / 0
14.12.2006, 17:17:21
    #34200868
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSP --> *.xls
не понял...
...
Рейтинг: 0 / 0
14.12.2006, 17:25:54
    #34200900
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSP --> *.xls
От мой стрый сорц
Код: 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
14.12.2006, 17:47:16
    #34200989
jsfmania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSP --> *.xls
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
14.12.2006, 17:52:19
    #34201007
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JSP --> *.xls
в рамках JSF:
написать action="#{foo.createXSL}"
в методе сформировать данные и отдать на растерзание jsp-шке (в формате jsf), которая сформирует таблицу. предварительно выставить в том же методе контент тип

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

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

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

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

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


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