преимущество:
JXL очень хорошо поддерживает китайский язык, и операция проста, и метод зависит от имени и значения.
JXL - это чистый Java API, который отлично работает на всех платформах. Код может быть запущен в Windows или Linux без переписывания
Поддерживает все версии Excel 95-2000 (в Интернете говорят, что в настоящее время он может поддерживать Excel 2007, но еще не пробовал)
Генерировать стандартный формат Excel 2000
Поддержка шрифта, номер, дата операции
Способен изменять свойства ячейки
Изображения и диаграммы поддерживаются, но этот API имеет ограниченную поддержку графики и диаграмм и распознает только формат PNG.
недостаток:
Неэффективная, несовершенная поддержка с картинками и менее мощная поддержка форматов, чем POI
Случай:
String times = (new SimpleDateFormat ("yyyyMmddhhmmss")). Format (new Date ()); string fname = "Системный журнал" + times; // Список имен файла <logs> list = logsservice.selectforlist (hql.tostring ()); String path = request.getSession (). GetServletContext (). GetRealPath ("/") + "xls/" + (new SimpleDateFormat ("yyyyMmdd")). Format (new Date ()); File file = new File (path); // Создать if (! File.exists () &&! File.isdirectory ()) {file.mkdir (); } response.setContentType ("Application/vnd.ms-excel; charset = utf-8"); // // указать тип сохранения файла. response.setcharacterencoding ("UTF-8"); Exportutil.writer_log (запрос, fname, list, response); // скачать на локациюМетод экспорта writer_log выглядит следующим образом
/*** Сгенерировать файл Excel и экспорт на локальный компьютер* @param fname Имя файла* @param Список данных для печати, то есть списка данных запросов базы данных*/public static void writer_log (httpservlectrequest, string fname, список, httpservonse response) {trese {outputStream ospure -aspput; response.reset (); // Очистить выходной поток // Ниже приведен начало обработки китайского имени файла. else fname = new String (fname.getbytes ("utf-8"), "iso-8859-1"); response.setheader («Содержание-распределение», «Приложение; файл» = "+fname+". XLS "); response.setContentType ("Application/msexcel; charset = UTF-8"); // Определить тип вывода // Обработка китайского имени файла заканчивается // рабочая книга здесь импорт импорт jxl.workbook; Wriseableworkbook wbook = Workbook.createworkbook (OS); // Создание файла Excel wriseBleSheet Sheet = wbook.createSheet ("Системный журнал", 0); // Имя рабочего листа cellview cellView = new CellView (); cellView.setAutosize (true); // Установить автоматический лист размера. SetColumnView (0, 8); // Установить ширину ячейки, 0 - номер столбца, 8 - лист ширины. SetColumnView (1, 20); // Установить ширину ячейки, 1 - номер столбца, 20 - ширина. SetColumnView (2, 24); sheet.setcolumnview (3, 20); sheet.setcolumnview (4, 30); sheet.setcolumnview (5, 13); sheet.setcolumnview (6, 15); sheet.setcolumnview (7, 32); sheet.setcolumnview (8, 15); // Установите Excel Font WritableFont wfont = new PrisesableFont (writeblefont.createfont ("宋体"), 22, riseablefont.bold, false, jxl.format.underlineStyle.no_underline, jxl.format.colour.black); // Установить шрифт сотовой шрифт wriseblecellformat titleformat = new wriseablecellformat (wfont); // Добавить ячейку шрифта titformat.setAlignment (alignment.centre); // установить текстовое выравнивание; String [] title = {"System Log"}; // Установите начало заголовка таблицы Excel для (int i = 0; i <title.length; i ++) {// Что здесь импортируется import jxl.write.label; Метка Exceltitle = New Label (i, 0, title [i], titleformat); // Содержание ячейки // Порядок параметра: начальная столбец, начальная строка, столбец конечной, лист конечной строки.mergeCells (0, 0, 8, 0); // местоположение, какая строка, какая листовая столбца. // Добавить информацию о ячейке} // Установить заголовок заголовка таблицы Excel // Первая строка, то есть время отображения, параметры: (столбец, строка, контент). jxl.format.colour.black); // Установить шрифт сотовой шрифт wriseblecellformat titletime = new wriseblecellformat (wfonttime); // Добавить ячейки шрифта titletime.setAlignment (выравнивание.right); // установить текстовое выравнивание; DateFormat df = new SimpleDateFormat ("yyyy-mm-dd"); // sheate.setColumnView (1, cellView); // автоматически устанавливает ширину столбца в соответствии с меткой контента ContentDate = New Label (0, 1, df.format (new Date ()), titletime); // Содержание ячейки // sheet.mergecells (16, 1, 18, 1); // местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция. Если нет слияния, вы не можете написать лист. Addcell (ContentDate); // Добавить информацию о ячейке // Конец первой строки // Вторая строка показывает строку условия названия «Задача writeablefont wfont2 = new writeablefont (writeablefont.createfont (" 宋体 "), 11, riseablefont.bold, false, jxl.format.undlinestyle.no_underline, jxl.format.colour.black); // Установить стиль шрифта Cell WriseableCellformat TitleFormat2 = new wriseBlecellFormat (wfont2); // Добавить шрифт Cell TitleFormat2.setborder (border.all, borderlystyle.thin); // Установить границу и линии; TitleFormat2.setAlignment (Alignment.Centre); // установить центрированное выравнивание текста; TitleFormat2.setVerticalAlignment (verticalAlignment.centre); // установить вертикальное центрирование; Метка Content2a = новая метка (0, 2, «Серийный номер», TitleFormat2); // Содержимое ячейки-1-й сетчатой меткой Content2b = новая метка (1, 2, «Имя пользователя», TitleFormat2); // Содержимое ячейки-2-я метка // Содержание ячейки-3-й сетчатой метки содержимого 2c = новая метка (2, 2, «время записи», TitleFormat2); // Содержание ячейки-3-й сетчатой метки содержимого 2c = новая метка (2, 2, «время записи», TitleFormat2); // Содержание ячейки-3-й сетчатой метки содержимого 2d = новая метка (3, 2, «Модуль операции», TitleFormat2); // Содержание ячейки-4-я метка сетки содержимое 2E = новая метка (4, 2, «Операционный содержимое», TitleFormat2); // Содержание ячейки-5-я метка сетки Content2f = новая метка (5, 2, «Операция действий», TitleFormat2); // Содержание ячейки-6-я метка сетки содержимое 2G = новая метка (6, 2, "оператор IP", TitleFormat2); // Содержание ячейки-7-я метка сетки. // Содержание ячейки-8-я метка сетки содержимое2i = новая метка (8, 2, «Примечание», TitleFormat2); // Содержание ячейки-9-й лист сетки.mergeCells (0, 1, 8, 1); /* heet.mergecells(0, 2, 0, 4); // Местоположение, какое строку и столбец находятся в строке, то есть положением слияния, если нет слияния, вы не можете написать его; (Вот начальная строка 3 до строки 5, столбец 1) Лист. MergeCells (1, 2, 1, 4); // Местоположение, какое строку и столбец находятся в строке, то есть положением слияния, если нет слияния, вы не можете написать его; (Вот начальная строка 3 до строки 5, столбец 2) Лист. MergeCells (2, 2, 2, 4); // Местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот стартовая строка 3 до строки 5, столбец 3) Лист. MergeCells (3, 2, 3, 4); // Местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот начальная строка 3 до строки 5, столбец 4) Лист. MergeCells (4, 2, 4, 4); // Местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот начальная строка 3 до строки 5, столбец 5) Лист. MergeCells (5, 2, 5, 4); // Местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот стартовая строка 3 до строки 5, столбец 6) Лист. MergeCells (6, 2, 6, 4); // Местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот стартовая строка 3 до строки 5, столбец 7) Лист. MergeCells (7, 2, 7, 4); // Местоположение, какое строку и столбец находятся в строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот начальная строка 3 до строки 5, столбец 8) Лист. MergeCells (8, 2, 8, 4); // Местоположение, которое строка и столбцы находятся в строке, то есть положением слияния. Если нет слияния, вы не можете написать это; (Вот стартовая строка 3 до строки 5, столбец 9) Лист. MergeCells (9, 2, 9, 4); // Местоположение, которое строка и столбцы находятся в строке, то есть положением слияния. Если нет слияния, вы не можете написать это; (Вот стартовая строка 3 до строки 5, столбец 10). // Местоположение, которое строка и столбцы находятся в строке, то есть положением слияния. Если нет слияния, вы не можете написать это; (Вот начальная строка 3 до строки 4, столбец 11-13). // Местоположение, какое строку и столбец находятся в первой строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот начальная строка 3 до строки 4, столбцы 14-16). // Местоположение, какое строку и столбец находятся в первой строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот стартовая строка 3 до строки 5, столбец 17) Лист. MergeCells (17, 2, 17, 4); // Местоположение, какое строку и столбец находятся в первой строке, то есть объединенная позиция, если нет слияния, вы не можете написать его; (Вот стартовая строка 3 до строки 5, столбец 18) Лист. MergeCells (18, 2, 18); // Местоположение, какое строку и столбец находятся в первой строке, то есть объединенной позиции. Если нет слияния, вы не можете написать это; (Вот стартовая строка от 3 до 5, столбец 19) */ sheet.addcell (content2a); // Добавить информацию о первой ячейке. Addcell (Content2b); // Добавить информационный лист второй ячейки. Addcell (Content2c); // Добавить информационный лист третьей ячейки. Addcell (Content2d); // Добавить информационный лист четвертой ячейки. Addcell (Content2e); // Добавить информационный лист пятой ячейки. Addcell (Content2f); // Добавить информационный лист шестой ячейки. Addcell (Content2g); // Добавить информационный лист седьмой ячейки. Addcell (Content2h); // Добавить Информационный лист 8 -й ячейки. Addcell (Content2i); // Добавить 9 -й ячейки информации о записи, что можно получить wf = new writeblefont (writeblefont.createfont ("安安"), 11, writeblefont.no_bold, false, jxl.format.undlineStyle.no_underline, jxl.format.colour.black); // Установите шрифт Cell Style wriseblecellformat wcf = new wriseblecellformat (wf); // Добавить ячейки шрифта wcf.setborder (border.all, borderlystyle.thin); // Установить границу-Смолидную линию; wcf.seterticalAlignment (verticalAlignment.centre); // Установить вертикальное выравнивание wcf.setAlignment (alignment.centre); // Установить горизонтальный центрирующий выравнивание текста; wcf.setwrap (true); // Automatic Line wroupablefont wf1 = new writeblefont (writebulbontfont.createfont ("安体"), 11, writeblefont.no_bold, false, jxl.format.undlineStyle.no_underline, jxl.format.colour.black); // Установить стиль шрифта Cell wriseblecellformat wcf1 = new wriseblecellformat (wf1); // Добавить ячейки шрифта wcf1.setborder (border.left, borderlystyle.thin); // Установить границу и линии; wcf1.setverticalAlignment (verticalAlignment.centre); // Установить вертикальное выравнивание wcf1.setAlenment (alignment.centre); // Установить горизонтальный центрирующий выравнивание текста; // информация, полученная следующей базой данных цикла int c = 1; // Количество строки Excel, используемое для цикла итератора it = list.iterator (); while (it.hasnext ()) {logs tc = (logs) it.next (); DateFormat dfmt = new SimpleDateFormat ("yyyy.mm"); String xh = string.valueof (c); if (xh == null) {xh = ""; } Метка содержимого 0 = новая метка (0, C+2, XH, WCF); // name serial number name = tc.getusername (); if (name == null) {name = ""; } Метка Content1 = новая метка (1, C+2, имя, WCF); // username string xrpresent = tc.getlogtime (); if (xrpresent == null) {xrpresent = ""; } Метка содержимого 2 = новая метка (2, C+2, xrpresent, wcf); // Запись строки времени czmodel = tc.getmodel (); if (czmodel == null) {czmodel = ""; } Метка содержимого 3 = новая метка (3, C+2, CzModel, WCF); // операционный модуль String sex = tc.getContent (); if (sex == null) {sex = ""; } Метка Content4 = новая метка (4, C+2, Sex, WCF); // Операция содержимого строки день рождения = tc.getoPerate (); if (день рождения == null) {день рождения = ""; } Метка содержимого 5 = новая метка (5, C+2, день рождения, WCF); // операция действий строка nation = tc.getip (); if (nation == null) {nation = ""; } Метка Content6 = новая метка (6, C+2, Nation, WCF); // Оператор IP String Origin = tc.getorGname (); if (Origin == null) {Origin = ""; } Метка Content7 = новая метка (7, C+2, Origin, WCF); // или организационная строка bplace = tc.getRemark (); if (bplace == null) {bplace = ""; } Label content8 = новая метка (8, c+2, bplace, wcf); // Заметить строку abc = ""; Содержание метки9 = новая метка (9, C+2, ABC, WCF1); // замечание лист.setRowView (C+2, 600); // Установить лист высоты линии. SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); Sheet.SetRowView (C+2, 600); sheet.mergecells (0, c+2, 0, c+2); // MERGECELLS (1, C+2, 0, C+2); // MERGECELLS (A, B, C, D) Лист функционального слияния ячейки. MergeCells (2, C+2, 0, C+2); // лист номера столбца ячейки. MergeCells (3, C+2, 0, C+2); // лист линии линии B -клеток. MergeCells (4, C+2, 0, C+2); // c Начало с ячейки [a, b], слияние до C -листа C -столб. // d из ячейки [a, b], слияние до строки d листа. mergecells (6, c+2, 0, c+2); sheet.mergecells (7, c+2, 0, c+2); sheet.mergecells (8, c+2, 0, c+2); sheet.mergecells (9, c+2, 0, c+2); sheet.addcell (content0); sheet.addcell (content1); sheet.addcell (content2); sheet.addcell (content3); sheet.addcell (content4); sheet.addcell (content5); sheet.addcell (content6); sheet.addcell (content7); sheet.addcell (content8); sheet.addcell (content9); C ++; } wbook.write (); // записать в файл wbook.close (); os.close (); } catch (Exception e) {бросить новое paikeexception ("ошибка файла экспорта"); }}Приведенный выше пример объяснения данных экспорта JXL в Excel - все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.