Я использую GXT. У меня есть Грид.
com.sencha.gxt.widget.core.client.grid.Grid<RiaBean> grid;
Я хочу экспортировать это в файл excel.
я не хочу использовать внешние файлы Jar.
Может ли какой-нибудь орган помочь.
Я использую GXT. У меня есть Грид.
com.sencha.gxt.widget.core.client.grid.Grid<RiaBean> grid;
Я хочу экспортировать это в файл excel.
я не хочу использовать внешние файлы Jar.
Может ли какой-нибудь орган помочь.
Ваша Сеть состоит из ColumnConfig<RiaBean,?>
.
Каждый ColumnConfig<RiaBean,?>
связан с ValueProvider<RiaBean,?>
. Каждый ValueProvider<RiaBean,?>
содержит методgetPath()
, предназначенный для возврата пути к отображаемым элементам.
Следовательно, вы можете легко получить пути к отображаемым элементам, отправить их на сервер и вернуть значение с помощью самоанализа или EL.
Например, возьмем этот класс
public class RIABean{
private String a;
private Integer b;
private Boolean c;
private Integer idFoo;
}
Используйте интерфейс, который расширяет возможности PropertyAccess, чтобы легко определять ваши ValueProviders. Он также сгенерирует методы getPath() с точным значением.
public interface RIABeanPropertyAccess extends PropertyAccess<RIABean>{
//The generated getPath() method returns "a"
ValueProvider<RIABean,String> a();
//The generated getPath() method returns "b"
ValueProvider<RIABean,Integer> b();
//The generated getPath() method returns "c"
ValueProvider<RIABean, Boolean> c();
//The generated getPath() method returns "foo.id"
@Path("foo.id")
ValueProvider<RIABean, Integer> idFoo();
}
Создайте ColumnModel для вашей сетки:
RIABeanPropertyAccess pa=GWT.create(RIABean.class);
List<ColumnConfig<RIABean,?>> listCols=new ArrayList<ColumnConfig<RIABean,?>>();
listCols.add(new ColumnConfig(pa.a(),100,"Header text for column A");
listCols.add(new ColumnConfig(pa.b(),100,"Header text for column B");
listCols.add(new ColumnConfig(pa.c(),100,"Header text for column C");
ColumnModel colModel=new ColumnModel(listCols);
Когда пользователь нажимает кнопку «Экспорт», просто повторите список ColumnConfig<RiaBean,?>
вашей сетки, чтобы получить Path
каждого из них и отправить этот список путей на сервер. Затем сервер может использовать самоанализ/рефлексию/EL для получения значений, соответствующих каждому пути.
Невозможно сгенерировать файл на стороне клиента. Так как сервер должен это делать, это самый простой способ, который я знаю, и это то, что мы делаем в моей команде.
Наконец, спросите себя, действительно ли вам нужен файл Excel или будет достаточно файла csv. Файл csv можно легко сделать без какой-либо библиотеки, и его можно открыть в Excel.