在数据处理过程中,将数据库中的数据导出为Excel表格是一项非常常见的操作。利用Java可以快速、高效地将数据导出为Excel表格,大大提高了数据处理效率和准确性。

一、Java实现Excel导出的准备工作

在使用Java实现Excel导出之前,需要进行一些准备工作,包括:

1、引入POI和Excel工具包

POI和Excel工具包是用于实现Java导出Excel的重要工具,需要先引入这两个工具包。

2、连接数据库

要导出数据库的数据,需要先连接数据库,获取需要导出的数据。

3、创建Excel文件

在导出数据之前,需要先创建一个Excel文件,将需要导出的数据写入到这个文件中。

二、将数据导出为Excel表格的具体实现

1、创建Excel文件

我们需要创建一个Excel文件,以便把数据写入到其中。创建Excel文件的步骤如下:

“`

//创建工作簿

Workbook workbook=new HSSFWorkbook();

//创建工作表

Sheet sheet =workbook.createSheet(“sheet1”);

“`

这里我们创建了一个工作簿和一个工作表。其中工作簿是Excel的更高级别的中间对象,而工作表则是工作簿下的具体表格。

2、获取需要导出的数据,并将其写入到Excel文件中

在准备工作完成之后,我们需要从数据库中获取需要导出的数据,并将其写入到创建好的Excel文件中。具体的实现方法如下:

“`

//获取连接

Connection con=this.getConnection();

Statement st = null;

ResultSet rs = null;

try {

    st = con.createStatement();

    rs = st.executeQuery(“select * from student”);//查询的SQL语句

    int rowNum = 1;

    // 添加excel的表头

Row headRow = sheet.createRow(0);

ResultSetMetaData rd = rs.getMetaData();

for (int i = 1; i

String columnName = rd.getColumnName(i);

Cell headCell = headRow.createCell(i-1);

headCell.setCellValue(columnName);

}

    while(rs.next()){

        Row row = sheet.createRow(rowNum);

        for(int i=0;i

            Cell cell = row.createCell(i);

            Object objVal = rs.getObject(i+1);

            if(objVal!=null){

                cell.setCellValue(objVal.toString());

            }

        }

        rowNum++;

    }

    

}catch(Exception e){

    e.printStackTrace();

} finally {

    try{

        if(st!=null) st.close();

        if(rs!=null) rs.close();

    }catch(SQLException e){

        e.printStackTrace();

    }

}

“`

在写入数据的过程中,我们需要注意如下问题:

① 在写入数据之前,我们需要先添加Excel表格的表头,以便于查看数据的内容;

② 在从ResultSet对象中获取每列对应的列名、列类型和列值时,一定要使用ResultSetMetaData类的方法来获取,这样可以更好的获取元数据信息,更加准确地组织数据。

3、保存Excel文件

数据写入Excel文件结束后,我们需要将这个文件保存到本地,可以使用FileOutputStream实现文件的输出和保存。具体的实现方法如下:

“`

File file = new File(“D:/student.xlsx”);

FileOutputStream fos = null;

try {

    if(!file.exists()){

        file.createNewFile();

    }

    fos=new FileOutputStream(file);

workbook.write(fos);

} catch (Exception e) {

    e.printStackTrace();

}finally {

    try {

        if (fos != null) {

            fos.close();

        }

    } catch (IOException e) {

        e.printStackTrace();

    }

}

“`

在保存Excel文件的过程中,我们需要注意如下问题:

① 在保存Excel文件之前,需要先判断文件是否存在,如果不存在,则需要创建新的文件;

② 在保存Excel文件之前,需要使用FileOutputStream来创建文件输出流,将文件的输出流与Excel文件进行关联,最后调用workbook.write(fos)方法来写入数据。

三、

利用Java实现数据库数据导出为Excel表格是一项非常实用的技术,可以大大提高数据处理的效率和准确性。Java中提供了POI和Excel工具包可以用来快速导出Excel文件,并且通过连接数据库和使用ResultSet对象可以快速获取需要导出的数据,然后将数据写入到Excel文件中并保存到本地。

相关问题拓展阅读:

java导出excel

试试double型

java导出Excel

java 代码 /* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.axon.fable.sams.view.action; import java.io.IOException; import java.io.OutputStream; import java.util.List; import javax.serv …

java导出Excel例举方式

方法一:导出Excel数据的插件jexcelapi

程序实例如下:

public void exportClassroom(OutputStream os) throws PaikeException {

try {

WritableWorkbook wbook = Workbook.createWorkbook(os); //建立excel文件

WritableSheet wsheet = wbook.createSheet(“教室信息表”, 0); //工作表名称

//设置Excel字体

WritableFont wfont = new WritableFont(WritableFont.ARIAL, 16,

WritableFont.BOLD, false,

jxl.format.UnderlineStyle.NO_UNDERLINE,

jxl.format.Colour.BLACK);

WritableCellFormat titleFormat = new WritableCellFormat(wfont);

String title = { “教室名”, “容 量”, “类 型”, “其他说明”兆源 };

//设置锋猜渗银脊Excel表头

for (int i = 0; i</p><p>Label excelTitle = new Label(i, 0, title<i>, titleFormat);</p><p><p>wsheet.addCell(excelTitle);</p><p>}</p><p>int c = 1; //用于循环时Excel的行号</p><p>ClassroomService cs = new ClassroomService();</p><p>List list = cs.findAllClassroom(); //这个是从数据库中取得要导出的数据</p><p>Iterator it = list.iterator();</p><p>while (it.hasNext()) {</p><p>ClassroomDTO crdto = (ClassroomDTO) it.next();</p><p>Label content1 = new Label(0, c, crdto.getRoomname());</p><p>Label content2 = new Label(1, c, crdto.getCapicity().toString());</p><p>Label content3 = new Label(2, c, crdto.getRoomTypeId()</p><p>.toString());</p><p>Label content4 = new Label(3, c, crdto.getRemark());</p><p>wsheet.addCell(content1);</p><p>wsheet.addCell(content2);</p><p>wsheet.addCell(content3);</p><p>wsheet.addCell(content4);</p><p>c++;</p><p>}</p><p>wbook.write(); //写入文件</p><p>wbook.close();</p><p>os.close();</p><p>} catch (Exception e) {</p><p>throw new PaikeException(“导出文件出错”);</p><p>}</p><p>}</p><p>方法二:直接用Java代码实现导出Excel报表</p><p>/*</p><p>* Generated by MyEclipse Struts</p><p>* Template path: templates/java/JavaClass.vtl</p><p>*/</p><p>package com.axon.fable.sams.view.action;</p><p>import java.io.IOException;</p><p>import java.io.OutputStream;</p><p>import java.util.List;</p><p>import javax.servlet.http.HttpServletRequest;</p><p>import javax.servlet.http.HttpServletResponse;</p><p>import jxl.Workbook;</p><p>import jxl.write.WriteException;</p><p>import jxl.write.biff.RowsExceededException;</p><p>import org.apache.struts.action.ActionForm;</p><p>import org.apache.struts.action.ActionForward;</p><p>import org.apache.struts.action.ActionMapping;</p><p>import org.hibernate.HibernateException;</p><p>import org.hibernate.Query;</p><p>import org.hibernate.Session;</p><p>import org.hibernate.Transaction;</p><p>import com.axon.fable.empolderpackage.out.OutJavaScript;</p><p>import com.axon.fable.empolderpackage.page.Pager;</p><p>import com.axon.fable.empolderpackage.string.MyPublic;</p><p>import com.axon.fable.sams.common.BaseAction;</p><p>import com.axon.fable.sams.exception.AppBusinessException;</p><p>import com.axon.fable.sams.exception.AppSystemException;</p><p>/**</p><p>* MyEclipse Struts</p><p>* Creation date:</p><p>*</p><p>* XDoclet definition:</p><p>* @struts.action path=”/axon” name=”axonForm” input=”/samspage/zm/axon.jsp” parameter=”method” scope=”request” validate=”true”</p><p>* @struts.action-forward name=”success” path=”/samspage/zm/content.jsp”</p><p>*/</p><p>public class StshipoperationAction extends BaseAction {</p><p>/*</p><p>* Generated Methods</p><p>*/</p><p>private static Session session=null;</p><p>private static Transaction ts=null;</p><p>private static Query queryC=null;</p><p>private static Query queryR=null;</p><p>private static Query query=null;</p><p>private static List list=null;</p><p>private static Integer startRow;</p><p>private static Integer ncurrentPage;</p><p>private static Integer cell;</p><p>private static String property;</p><p>private static String sql;</p><p>private static String type;</p><p>private static String condition ;//是否导出当前页</p><p>private static String currentPage;</p><p>private static String from ;</p><p>private static String pactdata;</p><p>private static String voyagename;</p><p>private static String voyageno;</p><p>private static String dwt ;</p><p>private static String hirefrom ;</p><p>private static String deliveryposion ;</p><p>private static String redeliveryposion ;</p><p>private static String sheepowner ;</p><p>private static String addr;</p><p>private static String addcomm;</p><p>private static String rent;</p><p>private static String fileName ;</p><p>private static OutputStream os;</p><p>@Override</p><p>public ActionForward findAll(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {</p><p>// TODO Auto-generated method stub</p><p>return null;</p><p>}</p><p>@Override</p><p>public ActionForward findById(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {</p><p>// TODO Auto-generated method stub</p><p>return null;</p><p>}</p><p>@Override</p><p>public ActionForward save(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {</p><p>// TODO Auto-generated method stub</p><p>return null;</p><p>}</p><p>public static String strNull(Object nullStr,String newStr,Integer cell){</p><p>if(nullStr==null||nullStr.equals(“”)){return newStr;}else{cell+=1;return nullStr+””;}</p><p>}</p><p>public static String getStr(String str,Integer cell){</p><p>if(str==null||str.trim().equals(“”)){return “”;}else{cell+=1;return “,”+str;}</p><p>}</p><p>public static String getExcelTile(String title){</p><p>if(title==null)</p><p>return “”;</p><p>if(title.equals(“modela.stsid”))</p><p>return “编号”;</p><p>if(title.equals(“modelc.pactdata”))</p><p>return “合同日期”;</p><p>if(title.equals(“modela.voyagename”))</p><p>return “航名”;</p><p>if(title.equals(“modela.voyageno”))</p><p>return “航次”;</p><p>if(title.equals(“modelc.dwt”))</p><p>return “DWT”;</p><p>if(title.equals(“modelc.hirefrom”))</p><p>return “受载期”;</p><p>if(title.equals(“modela.deliveryposion”))</p><p>return “交船地点”;</p><p>if(title.equals(“modela.redeliveryposion”))</p><p>return “还船地点”;</p><p>if(title.equals(“modelc.sheepowner”))</p><p>return “联系人”;</p><p>if(title.equals(“modelc.addr”))</p><p>return “经纪人拥金”;</p><p>if(title.equals(“modelc.addcomm”))</p><p>return “ADD COMM”;</p><p>if(title.equals(“modelc.rent”))</p><p>return “租金”;</p><p>return “”;</p><p>}</p><p>public ActionForward exporVoyagesInfoToExcel(ActionMapping mapping, ActionForm form,</p><p>HttpServletRequest request, HttpServletResponse response) {</p><p>list=null;</p><p>startRow=0;</p><p>ncurrentPage=1;</p><p>cell=0;</p><p>type =request.getParameter(“type”);</p><p>condition =request.getParameter(“condition”);//是否导出当前页</p><p>currentPage =request.getParameter(“currentPage”);</p><p>from =request.getParameter(“from”);</p><p>pactdata = request.getParameter(“modelc.pactdata”);</p><p>voyagename = request.getParameter(“modela.voyagename”);</p><p>voyageno = request.getParameter(“modela.voyageno”);</p><p>dwt = request.getParameter(“modelc.dwt”);</p><p>hirefrom = request.getParameter(“modelc.hirefrom”);</p><p>deliveryposion = request.getParameter(“modela.deliveryposion”);</p><p>redeliveryposion = request.getParameter(“modela.redeliveryposion”);</p><p>sheepowner = request.getParameter(“modelc.sheepowner”);</p><p>addr = request.getParameter(“modelc.addr”);</p><p>addcomm = request.getParameter(“modelc.addcomm”);</p><p>rent = request.getParameter(“modelc.rent”);</p><p>if(type!=null&&type.trim().equals(“1”)){</p><p>type =”已还船舶–费用未结清”;</p><p>}else{</p><p>type =”已还船舶–费用已结清”;</p><p>}</p><p>property =getStr(pactdata,cell)+getStr(voyagename,cell)+getStr(voyageno,cell)+getStr(dwt,cell)+getStr(hirefrom,cell)</p><p>+getStr(deliveryposion,cell)+getStr(redeliveryposion,cell)+getStr(sheepowner,cell)+getStr(addr,cell)+getStr(addcomm,cell)</p><p>+getStr(rent,cell);</p><p>property = property.substring(1);</p><p>String split = property.split(“,”);</p><p>// System.out.println(“-property:”+property);</p><p>if(currentPage!=null&&!currentPage.trim().equals(“”)){</p><p>ncurrentPage =Integer.parseInt(currentPage);</p><p>}else{</p><p>OutJavaScript.outString(response, “Sorry! Failed to get information of pager.”);</p><p>return null;</p><p>}</p><p>try {</p><p>session =getServiceLocator().getBaseHibernateDAO().getSession();</p><p>sql =”select count(*) “+from;</p><p>query =session.createQuery(sql);</p><p>list = query.list();</p><p>for (int i = 0; i</p><p>totalSize =(Integer)list.get(i);</p><p>if(totalSize!=0){</p><p>pager =new Pager(ncurrentPage,totalSize);</p><p>}</p><p>}</p><p>query =getServiceLocator().getBaseHibernateDAO().getSession().createQuery(“select ” +property+from);</p><p>if(condition!=null&&condition.trim().equals(“1”)){//分页数据</p><p>startRow = (ncurrentPage – 1)*pager.getPageSize();</p><p>query.setFirstResult(startRow);</p><p>query.setMaxResults(pager.getPageSize());</p><p>// System.out.println(“query:”+query);</p><p>}</p><p>list = query.list();</p><p>fileName = “shipInfo”;</p><p>os = response.getOutputStream();</p><p>response.reset();</p><p>response.setHeader(“Content-disposition”,</p><p>“attachment; filename=” +fileName + “.xls”);</p><p>response.setContentType(“application/msexcel”);</p><p>jxl.write.WritableWorkbook wbook = Workbook.createWorkbook(os);</p><p>jxl.write.WritableSheet wsheet = wbook.createSheet(“the first sheet”, 0);</p><p>for (int i = 0; i</p><p>jxl.write.Label wlabel0;</p><p>wlabel0 = new jxl.write.Label(i, 0, getExcelTile(split<i>));</p><p><p>wsheet.addCell(wlabel0);</p><p>}</p><p>jxl.write.Label wlabel1;</p><p>for(int i=0;i</p><p>if(split.length==1){</p><p>Object strval = (Object) list.get(i);</p><p>String javaScript=””+MyPublic.toHtmlStr(strval==null?””:strval.toString().trim())+””;</p><p>wlabel1 = new jxl.write.Label(0, i+1,strval==null?””:strval.toString().trim() );</p><p>wsheet.addCell(wlabel1);</p><p>}else{</p><p>Object strval = (Object) list.get(i);</p><p>for(int j=0;j</p><p>String javaScript=””+MyPublic.toHtmlStr(strval==null?””:strval.toString().trim())+””;</p><p><p>//System.out.println(“===================script:”+javaScript);</p><p>wlabel1 = new jxl.write.Label(j, i+1,strval==null?””:strval.toString().trim() );</p><p><p>wsheet.addCell(wlabel1);</p><p>}</p><p>}</p><p>}</p><p>wbook.write();</p><p>response.flushBuffer();</p><p>wbook.close();</p><p>os.close();</p><p>} catch (IOException e) {</p><p>// TODO Auto-generated catch block</p><p>OutJavaScript.outString(response, “Sorry! Export Excel exception.”);</p><p>e.printStackTrace();</p><p>} catch (HibernateException e1) {</p><p>// TODO Auto-generated catch block</p><p>OutJavaScript.outString(response, “Sorry! Database exception.”);</p><p>e1.printStackTrace();</p><p>} catch (AppSystemException e1) {</p><p>// TODO Auto-generated catch block</p><p>OutJavaScript.outString(response, “Sorry! System exception.”);</p><p>e1.printStackTrace();</p><p>} catch (AppBusinessException e1) {</p><p>// TODO Auto-generated catch block</p><p>OutJavaScript.outString(response, “Sorry! Database exception.”);</p><p>e1.printStackTrace();</p><p>} catch (RowsExceededException e) {</p><p>// TODO Auto-generated catch block</p><p>OutJavaScript.outString(response, “Sorry! Export Excel exception.”);</p><p>e.printStackTrace();</p><p>} catch (WriteException e) {</p><p>// TODO Auto-generated catch block</p><p>OutJavaScript.outString(response, “Sorry! Export Excel exception.”);</p><p>e.printStackTrace();</p><p>}</p><p>return null;</p><p>}</p><p>@Override</p><p>public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {</p><p>// TODO Auto-generated method stub</p><p>return null;</p><p>}</p><p>}</p><p>还有其他很多种 字数限制 无法一一举例方式</p><p>这个好像不能实现吧,导出的应该都是文本的!</p><h3 id="如何从java输出到excel"><span id="javaexcel-2">如何从java输出到excel</span></h3><p>用JAVA程序,读取或者写入excel文件戚岁,通过用jxl或者poi,下面是我给你写的例子。分别是用jxl读写excel文件,用poi读写excel文件。希望对你有帮助。(需要下载jxl和poi的jar包仿蚂)</p><p>package util.excel;</p><p>import java.io.FileInputStream;</p><p>import java.io.FileOutputStream;</p><p>import java.io.IOException;</p><p>import java.util.ArrayList;</p><p>import java.util.HashMap;</p><p>import java.util.List;</p><p>import java.util.Map;</p><p>import jxl.Cell;</p><p>import jxl.Sheet;</p><p>import jxl.Workbook;</p><p>import jxl.format.Colour;</p><p>import jxl.format.UnderlineStyle;</p><p>import jxl.write.Label;</p><p>import jxl.write.WritableCellFormat;</p><p>import jxl.write.WritableFont;</p><p>import jxl.write.WritableSheet;</p><p>import jxl.write.WritableWorkbook;</p><p>import org.apache.poi.hssf.usermodel.HSSFCell;</p><p>import org.apache.poi.hssf.usermodel.HSSFRichTextString;</p><p>import org.apache.poi.hssf.usermodel.HSSFRow;</p><p>import org.apache.poi.hssf.usermodel.HSSFSheet;</p><p>import org.apache.poi.hssf.usermodel.HSSFWorkbook;</p><p>import org.apache.poi.poifs.filesystem.POIFSFileSystem;</p><p>public class ExcelUtil {</p><p> /**</p><p> * @param args</p><p> * @throws IOException</p><p> */</p><p> public static void main(String args) throws IOException {</p><p> String outFile = “D:/workspace/JavaStudy/src/util/excel/test.xls”;</p><p> ExcelUtil.writeExcelByJXL(outFile, null);</p><p> }</p><p> /**</p><p> *</p><p> * @title: readExcelByJXL</p><p> * @description: 通过jxl读取excel文件</p><p> * @author yu ren tian</p><p> * @email</p><p> * @param excelFile</p><p> * @return</p><p> * @throws IOException</p><p> */</p><p> private static List readExcelByJXL(String excelFile) throws IOException {</p><p> List rtn = new ArrayList();</p><p> FileInputStream fileInputStream = null;</p><p> try {</p><p> fileInputStream = new FileInputStream(excelFile);</p><p> Workbook excelWorkBook = Workbook.getWorkbook(fileInputStream);</p><p> Sheet sheet = excelWorkBook.getSheet(0);</p><p> int m = sheet.getRows();</p><p> int n = sheet.getColumns();</p><p> for (int i = 1; i</p><p>function AllAreaExcel() {</p><p>var title;</p><p>title=document.getElementsByTagName(“table”).childNodes.item(0).childNodes(0).childNodes(0).innerText;</p><p><p>alert(title);</p><p>var oXL = new ActiveXObject(“Excel.Application”);</p><p>var oWB = oXL.Workbooks.Add();</p><p>var oSheet = oWB.ActiveSheet;</p><p>//从excel的第5行开始插入</p><p>oSheet.Range(“A5”).select;</p><p>oWB .Worksheets(1).Activate;</p><p>oSheet.Cells(3,1).Value=title; //在第3行插入报表头</p><p>oWB.Worksheets(1).Range(“A3:I3”).merge(); // 合并单元格区域 A3:I3</p><p>oWB.Worksheets(1).Range(“亩掘A3:I3”).HorizontalAlignment=3; //旁或居中对齐A3:I3</p><p>var sel=document.body.createTextRange();</p><p>sel.moveToElementText(table1); //table 的ID值</p><p>sel.select();</p><p>sel.execCommand(“Copy”);</p><p>oSheet.Paste();</p><p>oXL.Visible = true;</p><h3 id="Java怎样将数据库中数据导出为Excel文件,求完整例子附带数据库。"><span id="JavaExcel">Java怎样将数据库中数据导出为Excel文件,求完整例子附带数据库。</span></h3><p>用POI啊!</p><p>感觉挺好使的,刚刚做完一个账目表导出。</p><p>下面是我写的一个运用jxl生成Excel文件的方法</p><p>该方法接收一个保存MarkesData数据的ArrayList arlist和文件生成路径Path</p><p>通过取得arlist里的数据生成Excel文件</p><p>感觉应尺知该是你想要的 我没调试过也许有错 你也可以根据你的需要进握穗行修改^_^</p><p>import java.io.File;</p><p>import java.io.IOException;</p><p>import java.util.ArrayList;</p><p>import java.util.Iterator;</p><p>import jxl.Workbook;</p><p>import jxl.write.Label;</p><p>import jxl.write.WritableSheet;</p><p>import jxl.write.WritableWorkbook;</p><p>import jxl.write.WriteException;</p><p>import jxl.write.biff.RowsExceededException;</p><p>public class WriteExcel {</p><p>WritableWorkbook book=null;</p><p>public void OutputExcel(ArrayList arlist,String Path){</p><p> try{</p><p>book = Workbook.createWorkbook(new File(Path));</p><p>//设置表名</p><p>WritableSheet sheet = book.createSheet(“考试单”,0);</p><p>//生成表格题头</p><p>Label labe1 = new Label(0, 0, “考生姓名” );</p><p>Label labe2 = new Label(1, 0, “地区”);</p><p>Label labe3 = new Label(2, 0, “所属院校”);</p><p>Label labe4 = new Label(3, 0, “班级”);</p><p>Label labe5 = new Label(4, 0, “考试号”);</p><p>Label labe6 = new Label(5, 0, “考试时间”);</p><p>Label labe7 = new Label(6, 0, “科目名称”);</p><p>//将生成的段困卜单元格添加到工作表中</p><p>sheet.addCell(labe1);</p><p>sheet.addCell(labe2);</p><p>sheet.addCell(labe3);</p><p>sheet.addCell(labe4);</p><p>sheet.addCell(labe5);</p><p>sheet.addCell(labe6);</p><p>sheet.addCell(labe7);</p><p>Iterator it = arlist.iterator();</p><p>int i = 1;</p><p> while(it.hasNext()){</p><p>//通过迭代获得arlist里的MarkesData对象</p><p>MarkesData temp = (MarkesData)it.next();</p><p>//取得数据生成单元格</p><p>Label label1=new Label(0,i,temp.getUser_name());</p><p>Label label2=new Label(1,i,temp.getArea_name());</p><p>Label label3=new Label(2,i,temp.getCollege_name());</p><p>Label label4=new Label(3,i,temp.getClass_name());</p><p>Label label5=new Label(4,i,temp.getTest_name());</p><p>Label label6=new Label(5,i,temp.getStarttime());</p><p>Label label7=new Label(6,i,temp.getSubject_name());</p><p>//将生成的单元格添加到工作表中</p><p>sheet.addCell(label1);</p><p>sheet.addCell(label2);</p><p>sheet.addCell(label3);</p><p>sheet.addCell(label4);</p><p>sheet.addCell(label5);</p><p>sheet.addCell(label6);</p><p>sheet.addCell(label7);</p><p>i++;</p><p>}</p><p>book.write();</p><p>book.close();</p><p>} catch (RowsExceededException e) {</p><p>e.printStackTrace();</p><p>} catch (WriteException e) {</p><p>e.printStackTrace();</p><p>} catch (IOException e) {</p><p>e.printStackTrace();</p><p>} finally{</p><p>try{</p><p> if(book!=null)book.close();</p><p>}catch(Exception e){</p><p> System.out.println(“exception when closing Connection in finally”);</p><p> System.out.println(e.getMessage().toString());</p><p>}</p><p>}</p><p> }</p><p>}</p><p>java导出数据库数据为excel的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java导出数据库数据为excel,用Java轻松实现数据库数据导出为Excel表格,java导出excel,如何从java输出到excel,Java怎样将数据库中数据导出为Excel文件,求完整例子附带数据库。的信息别忘了在本站进行查找喔。</p><div class='yarpp yarpp-related yarpp-related-website yarpp-related-none yarpp-template-list'><p>无关联文章</p></div><div class="post-end"></div><ul class="post-copyright"><li class="post-copyright-link"><strong>本文来源链接地址:</strong> <a rel="bookmark" title="用Java轻松实现数据库数据导出为Excel表格 (java导出数据库数据为excel)" href="https://www.npspro.cn/16774.html"> https://www.npspro.cn/16774.html</a></li></ul></div><div id="pay-single-box"></div><div class="article-copyright">www.npspro.cn软师兄<br/><a href="https://www.npspro.cn">软师兄</a> » <a href="https://www.npspro.cn/16774.html">用Java轻松实现数据库数据导出为Excel表格 (java导出数据库数据为excel)</a></div><div class="ripro_gg_wrap pc"><div style="color:red;">50T免费网盘资源大集合【持续更中~~~~】:<a href='https://link3.cc/88531cn' target="_blank">点击查看</a></div><hr /> <a href='http://doc.88531.cn/docs/yfwqtj' target="_blank"><img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDQwIiBoZWlnaHQ9IjkiIHZpZXdCb3g9IjAgMCAxMDQwIDkiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1040" height="9" class="alignnone size-full wp-image-38236" data-src="/wp-content/uploads/txad/2.png" alt="" /></a></div><div class="article-footer"><div class="author-box"><div class="author-image"> <img alt='' data-src='https://www.npspro.cn/wp-content/themes/ripro/assets/images/avatar/1.png' class='lazyload avatar avatar-96 photo ' height='96' width='96' /></div><div class="author-info"><h4 class="author-name"> <a target="_blank" href="javascript:;">程序猿零零漆</a> <span class="label label-warning"><i class="fa fa-diamond"></i> 钻石</span></h4></div></div><div class="xshare"> <span class="xshare-title">分享到:</span> <a href="javascript:;" title="收藏文章" etap="star" data-postid="16774" class="ripro-star"><i class="fa fa-star-o"></i></a> <a href="" etap="share" data-share="qq" class="share-qq"><i class="fa fa-qq"></i></a> <a href="" etap="share" data-share="weibo" class="share-weibo"><i class="fa fa-weibo"></i></a></div></div></div></div></article><div class="entry-navigation"><nav class="article-nav"> <span class="article-nav-prev">上一篇<br><a href="https://www.npspro.cn/14519.html" rel="prev">的数据?如何查询ON数据库内数据? (js怎么查询json数据库中)</a></span> <span class="article-nav-next">下一篇<br><a href="https://www.npspro.cn/12415.html" rel="next">数据库表中的三线表:优化性能与提高效率 (数据库表三线表)</a></span></nav></div></main></div></div><div class="sidebar-column col-lg-3"><aside class="widget-area"><div id="recent-posts-4" class="widget widget_recent_entries"><h5 class="widget-title">近期文章</h5><ul><li> <a href="https://www.npspro.cn/37642.html">不用开VIP会员,这个开源神器让你实现音乐自由多端支持Spotube</a></li><li> <a href="https://www.npspro.cn/37640.html">受够音乐平台VIP套路?这个开源神器让你实现音乐自由</a></li><li> <a href="https://www.npspro.cn/37630.html">强大!支持全网的安卓万能视频下载工具 v3.9.2 去广告会员版</a></li><li> <a href="https://www.npspro.cn/37628.html">ACR Phone安卓版(安卓电话录音软件) v0.364 修改版</a></li><li> <a href="https://www.npspro.cn/37626.html">安卓手机哔哩哔哩漫游 v8.43.0 去广告净化</a></li></ul></div><div id="toc-widget-2" class="widget toc_widget"><h5 class="widget-title">文章目录</h5><ul class="toc_widget_list no_bullets"><li><a href="#javaexcel"><span class="toc_number toc_depth_1">1</span> java导出excel</a></li><li><a href="#javaexcel-2"><span class="toc_number toc_depth_1">2</span> 如何从java输出到excel</a></li><li><a href="#JavaExcel"><span class="toc_number toc_depth_1">3</span> Java怎样将数据库中数据导出为Excel文件,求完整例子附带数据库。</a></li></ul></div></aside></div></div></div></div><footer class="site-footer"><div class="container"><div class="footer-widget"><div class="row"><div class="col-xs-12 col-sm-6 col-md-3 widget--about"><div class="widget--content"><div class="footer--logo mb-20"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0ODgiIGhlaWdodD0iMTU5IiB2aWV3Qm94PSIwIDAgNDg4IDE1OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="488" height="159" class="tap-logo" data-src="https://www.npspro.cn/wp-content/uploads/2024/08/1723198965-da49b08e96b0cfd.png" data-dark="https://www.npspro.cn/wp-content/uploads/2024/08/1723198965-da49b08e96b0cfd.png" alt="软师兄"></div><p class="mb-10">www.npspro.cn软师兄,为你提供最优质的资源</p></div></div><div class="col-xs-12 col-sm-3 col-md-2 col-md-offset-1 widget--links"><div class="widget--title"><h5>本站导航</h5></div><div class="widget--content"><ul class="list-unstyled mb-0"></ul></div></div><div class="col-xs-12 col-sm-3 col-md-2 widget--links"><div class="widget--title"><h5>友情链接</h5></div><div class="widget--content"><ul class="list-unstyled mb-0"></ul></div></div><div class="col-xs-12 col-sm-12 col-md-4 widget--newsletter"><div class="widget--title"><h5>快速搜索</h5></div><div class="widget--content"><form class="newsletter--form mb-30" action="https://www.npspro.cn/" method="get"> <input type="text" class="form-control" name="s" placeholder="关键词"> <button type="submit"><i class="fa fa-arrow-right"></i></button></form><h6>特别声明:本站所有资源均来源于互联网,如有侵权请联系站长(181050043#qq.com),将第一时间删除,源码仅供参考学习,请勿商用或其它非法用途,否则一切后果用户自负!</h6></div></div></div></div><div class="footer-links"><h6>友情链接:</h6><ul class="friendlinks-ul"></ul></div><div class="site-info"> © 2024Theme by - www.npspro.cn软师兄 <a href="https://beian.miit.gov.cn" target="_blank" class="text" rel="noreferrer nofollow"> 陕ICP备2023008366号-4</a> <br></div></div></footer><div class="rollbar"><div class="rollbar-item tap-dark" etap="tap-dark" title="夜间模式"><i class="mdi mdi-brightness-4"></i></div><div class="rollbar-item tap-click-qiandao"><a class="click-qiandao" title="签到" href="javascript:;"><i class="fa fa-calendar-check-o"></i></a></div><div class="rollbar-item tap-pencil"><a target="_blank" title="投稿赚钱" href="https://www.npspro.cn/wp-admin/post-new.php"><i class="fa fa-pencil"></i></a></div><div class="rollbar-item tap-qq" etap="tap-qq"><a target="_blank" title="QQ咨询" href="http://wpa.qq.com/msgrd?v=3&uin=181050043&site=qq&menu=yes"><i class="fa fa-qq"></i></a></div><div class="rollbar-item tap-blog-style" etap="tap-blog-style" data-id="1" title="博客模式"><i class="fa fa-list"></i></div><div class="rollbar-item" etap="to_full" title="全屏页面"><i class="fa fa-arrows-alt"></i></div><div class="rollbar-item" etap="to_top" title="返回顶部"><i class="fa fa-angle-up"></i></div></div><div class="dimmer"></div><div id="popup-signup" class="popup-signup fade" style="display: none;"><div class="register-login-modal" role="document"><div class="modal-content"><div class="modal-body"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0ODgiIGhlaWdodD0iMTU5IiB2aWV3Qm94PSIwIDAgNDg4IDE1OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="488" height="159" class="popup-logo" data-src="https://www.npspro.cn/wp-content/uploads/2024/08/1723198965-da49b08e96b0cfd.png" data-dark="https://www.npspro.cn/wp-content/uploads/2024/08/1723198965-da49b08e96b0cfd.png" alt="软师兄"><ul class="nav nav-tabs"><li class="active"><a href="#login" data-toggle="login">登录</a></li><li><a href="#signup" data-toggle="signup">注册</a></li></ul><div class="tab-content"><div class="tab-pane fade in active" id="login"><div class="signup-form-container text-center"><form class="mb-0"><div class="form-group"> <input type="text" class="form-control" name="username" placeholder="*用户名或邮箱"></div><div class="form-group"> <input type="password" class="form-control" name="password" placeholder="*密码"></div> <button type="button" class="go-login btn btn--primary btn--block"><i class="fa fa-bullseye"></i> 安全登录</button></form></div></div><div class="tab-pane fade in" id="signup"><form class="mb-0"><div class="form-group"> <input type="text" class="form-control" name="user_name" placeholder="输入英文用户名"></div><div class="form-group"> <input type="email" class="form-control" name="user_email" placeholder="绑定邮箱"></div><div class="form-group"> <input type="password" class="form-control" name="user_pass" placeholder="密码最小长度为6"></div><div class="form-group"> <input type="password" class="form-control" name="user_pass2" placeholder="再次输入密码"></div><div class="form-group"><div class="input-group"> <input type="text" class="form-control" name="captcha" placeholder="邮箱验证码"> <span class="input-group-btn"> <button class="go-captcha_email btn btn--secondary" type="button">发送验证码</button> </span></div></div> <button type="button" class="go-register btn btn--primary btn--block"><i class="fa fa-bullseye"></i> 立即注册</button></form></div></div> <a target="_blank" href="https://www.npspro.cn/wp-login.php?action=lostpassword" class="rest-password">忘记密码?</a></div></div></div></div><div class="off-canvas"><div class="canvas-close"><i class="mdi mdi-close"></i></div><div class="logo-wrapper"> <a href="https://www.npspro.cn/"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0ODgiIGhlaWdodD0iMTU5IiB2aWV3Qm94PSIwIDAgNDg4IDE1OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="488" height="159" class="logo regular" data-src="https://www.npspro.cn/wp-content/uploads/2024/08/1723198965-da49b08e96b0cfd.png" alt="软师兄"> </a></div><div class="mobile-menu hidden-lg hidden-xl"></div><aside class="widget-area"><div id="recent-posts-3" class="widget widget_recent_entries"><h5 class="widget-title">最近文章</h5><ul><li> <a href="https://www.npspro.cn/37642.html">不用开VIP会员,这个开源神器让你实现音乐自由多端支持Spotube</a></li><li> <a href="https://www.npspro.cn/37640.html">受够音乐平台VIP套路?这个开源神器让你实现音乐自由</a></li><li> <a href="https://www.npspro.cn/37630.html">强大!支持全网的安卓万能视频下载工具 v3.9.2 去广告会员版</a></li><li> <a href="https://www.npspro.cn/37628.html">ACR Phone安卓版(安卓电话录音软件) v0.364 修改版</a></li><li> <a href="https://www.npspro.cn/37626.html">安卓手机哔哩哔哩漫游 v8.43.0 去广告净化</a></li></ul></div><div id="calendar-3" class="widget widget_calendar"><h5 class="widget-title">日历</h5><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar" class="wp-calendar-table"><caption>2025 年 5 月</caption><thead><tr><th scope="col" title="星期一">一</th><th scope="col" title="星期二">二</th><th scope="col" title="星期三">三</th><th scope="col" title="星期四">四</th><th scope="col" title="星期五">五</th><th scope="col" title="星期六">六</th><th scope="col" title="星期日">日</th></tr></thead><tbody><tr><td colspan="2" class="pad"> </td><td><a href="https://www.npspro.cn/date/2025/05/01" aria-label="2025 年 4 月 30 日 发布的文章">1</a></td><td><a href="https://www.npspro.cn/date/2025/05/02" aria-label="2025 年 5 月 1 日 发布的文章">2</a></td><td>3</td><td>4</td><td>5</td></tr><tr><td id="today">6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td></tr><tr><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td></tr><tr><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td></tr><tr><td>27</td><td>28</td><td>29</td><td>30</td><td class="pad" colspan="3"> </td></tr></tbody></table><nav aria-label="上个月及下个月" class="wp-calendar-nav"> <span class="wp-calendar-nav-prev"><a href="https://www.npspro.cn/date/2025/04">« 4 月</a></span> <span class="pad"> </span> <span class="wp-calendar-nav-next"> </span></nav></div></div></aside></div> <script type="litespeed/javascript">console.log("SQL 请求数:39");console.log("页面生成耗时: 0.96718")</script> <script type="litespeed/javascript">var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src="https://hm.baidu.com/hm.js?225297bceab00c11f86be5cf7eefe4ca";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s)})()</script> <script id="toc-front-js-extra" type="litespeed/javascript">var tocplus={"visibility_show":"show","visibility_hide":"hide","width":"Auto"}</script> <script id="app-js-extra" type="litespeed/javascript">var caozhuti={"site_name":"\u8f6f\u5e08\u5144","home_url":"https:\/\/www.npspro.cn","ajaxurl":"https:\/\/www.npspro.cn\/wp-admin\/admin-ajax.php","is_singular":"1","tencent_captcha":{"is":"","appid":""},"infinite_load":"\u52a0\u8f7d\u66f4\u591a","infinite_loading":"<i class=\"fa fa-spinner fa-spin\"><\/i> \u52a0\u8f7d\u4e2d...","site_notice":{"is":"0","color":"rgb(33, 150, 243)","html":"<div class=\"notify-content\"><h3>\u6b22\u8fce\u6765\u5230\u8f6f\u5e08\u5144<\/h3><div>\u5168\u7f51\u6700TOP\u8d44\u6e90\u5206\u4eab<\/div><\/div>"},"pay_type_html":{"html":"<div class=\"pay-button-box\"><div class=\"pay-item\" id=\"alipay\" data-type=\"1\"><i class=\"alipay\"><\/i><span>\u652f\u4ed8\u5b9d<\/span><\/div><div class=\"pay-item\" id=\"weixinpay\" data-type=\"2\"><i class=\"weixinpay\"><\/i><span>\u5fae\u4fe1\u652f\u4ed8<\/span><\/div><\/div><p style=\"font-size: 13px; padding: 0; margin: 0;\">\u5f53\u524d\u4e3a\u6e38\u5ba2\u8d2d\u4e70\u6a21\u5f0f<\/p>","alipay":1,"weixinpay":2}}</script> <script data-no-optimize="1">!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function i(t){return e({},it,t)}function o(t,e){var n,a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,bt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,bt,e)}function r(t){return s(t,null),0}function u(t){return null===c(t)}function d(t){return c(t)===vt}function f(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function _(t,e){nt?t.classList.add(e):t.className+=(t.className?" ":"")+e}function v(t,e){nt?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function b(t,e){!e||(e=e._observer)&&e.unobserve(t)}function p(t,e){t&&(t.loadingCount+=e)}function h(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function m(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function E(t){return!!t[st]}function I(t){return t[st]}function y(t){return delete t[st]}function A(e,t){var n;E(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[st]=n)}function k(a,t){var i;E(a)&&(i=I(a),t.forEach(function(t){var e,n;e=a,(t=i[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(t,e,n){_(t,e.class_loading),s(t,ut),n&&(p(n,1),f(e.callback_loading,t,n))}function w(t,e,n){n&&t.setAttribute(e,n)}function x(t,e){w(t,ct,l(t,e.data_sizes)),w(t,rt,l(t,e.data_srcset)),w(t,ot,l(t,e.data_src))}function O(t,e,n){var a=l(t,e.data_bg_multi),i=l(t,e.data_bg_multi_hidpi);(a=at&&i?i:a)&&(t.style.backgroundImage=a,n=n,_(t=t,(e=e).class_applied),s(t,ft),n&&(e.unobserve_completed&&b(t,e),f(e.callback_applied,t,n)))}function N(t,e){!e||0<e.loadingCount||0<e.toLoadCount||f(t.callback_finish,e)}function C(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function M(t){return!!t.llEvLisnrs}function z(t){if(M(t)){var e,n,a=t.llEvLisnrs;for(e in a){var i=a[e];n=e,i=i,t.removeEventListener(n,i)}delete t.llEvLisnrs}}function R(t,e,n){var a;delete t.llTempImage,p(n,-1),(a=n)&&--a.toLoadCount,v(t,e.class_loading),e.unobserve_completed&&b(t,n)}function T(o,r,c){var l=g(o)||o;M(l)||function(t,e,n){M(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";C(t,a,e),C(t,"error",n)}(l,function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_loaded),s(e,dt),f(n.callback_loaded,e,a),i||N(n,a),z(l)},function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_error),s(e,_t),f(n.callback_error,e,a),i||N(n,a),z(l)})}function G(t,e,n){var a,i,o,r,c;t.llTempImage=document.createElement("IMG"),T(t,e,n),E(c=t)||(c[st]={backgroundImage:c.style.backgroundImage}),o=n,r=l(a=t,(i=e).data_bg),c=l(a,i.data_bg_hidpi),(r=at&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),L(a,i,o)),O(t,e,n)}function D(t,e,n){var a;T(t,e,n),a=e,e=n,(t=It[(n=t).tagName])&&(t(n,a),L(n,a,e))}function V(t,e,n){var a;a=t,(-1<yt.indexOf(a.tagName)?D:G)(t,e,n)}function F(t,e,n){var a;t.setAttribute("loading","lazy"),T(t,e,n),a=e,(e=It[(n=t).tagName])&&e(n,a),s(t,vt)}function j(t){t.removeAttribute(ot),t.removeAttribute(rt),t.removeAttribute(ct)}function P(t){m(t,function(t){k(t,Et)}),k(t,Et)}function S(t){var e;(e=At[t.tagName])?e(t):E(e=t)&&(t=I(e),e.style.backgroundImage=t.backgroundImage)}function U(t,e){var n;S(t),n=e,u(e=t)||d(e)||(v(e,n.class_entered),v(e,n.class_exited),v(e,n.class_applied),v(e,n.class_loading),v(e,n.class_loaded),v(e,n.class_error)),r(t),y(t)}function $(t,e,n,a){var i;n.cancel_on_exit&&(c(t)!==ut||"IMG"===t.tagName&&(z(t),m(i=t,function(t){j(t)}),j(i),P(t),v(t,n.class_loading),p(a,-1),r(t),f(n.callback_cancel,t,e,a)))}function q(t,e,n,a){var i,o,r=(o=t,0<=pt.indexOf(c(o)));s(t,"entered"),_(t,n.class_entered),v(t,n.class_exited),i=t,o=a,n.unobserve_entered&&b(i,o),f(n.callback_enter,t,e,a),r||V(t,n,a)}function H(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function B(t,i,o){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?q(t.target,t,i,o):(e=t.target,n=t,a=i,t=o,void(u(e)||(_(e,a.class_exited),$(e,n,a,t),f(a.callback_exit,e,n,t))));var e,n,a})}function J(e,n){var t;et&&!H(e)&&(n._observer=new IntersectionObserver(function(t){B(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function K(t){return Array.prototype.slice.call(t)}function Q(t){return t.container.querySelectorAll(t.elements_selector)}function W(t){return c(t)===_t}function X(t,e){return e=t||Q(e),K(e).filter(u)}function Y(e,t){var n;(n=Q(e),K(n).filter(W)).forEach(function(t){v(t,e.class_error),r(t)}),t.update()}function t(t,e){var n,a,t=i(t);this._settings=t,this.loadingCount=0,J(t,this),n=t,a=this,Z&&window.addEventListener("online",function(){Y(n,a)}),this.update(e)}var Z="undefined"!=typeof window,tt=Z&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),et=Z&&"IntersectionObserver"in window,nt=Z&&"classList"in document.createElement("p"),at=Z&&1<window.devicePixelRatio,it={elements_selector:".lazy",container:tt||Z?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",rt="srcset",ct="sizes",lt="poster",st="llOriginalAttrs",ut="loading",dt="loaded",ft="applied",_t="error",vt="native",gt="data-",bt="ll-status",pt=[ut,dt,ft,_t],ht=[ot],mt=[ot,lt],Et=[ot,rt,ct],It={IMG:function(t,e){m(t,function(t){A(t,Et),x(t,e)}),A(t,Et),x(t,e)},IFRAME:function(t,e){A(t,ht),w(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){A(t,ht),w(t,ot,l(t,e.data_src))}),A(t,mt),w(t,lt,l(t,e.data_poster)),w(t,ot,l(t,e.data_src)),t.load()}},yt=["IMG","IFRAME","VIDEO"],At={IMG:P,IFRAME:function(t){k(t,ht)},VIDEO:function(t){a(t,function(t){k(t,ht)}),k(t,mt),t.load()}},kt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,i=this._settings,o=X(t,i);{if(h(this,o.length),!tt&&et)return H(i)?(e=i,n=this,o.forEach(function(t){-1!==kt.indexOf(t.tagName)&&F(t,e,n)}),void h(n,0)):(t=this._observer,i=o,t.disconnect(),a=t,void i.forEach(function(t){a.observe(t)}));this.loadAll(o)}},destroy:function(){this._observer&&this._observer.disconnect(),Q(this._settings).forEach(function(t){y(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;X(t,n).forEach(function(t){b(t,e),V(t,n,e)})},restoreAll:function(){var e=this._settings;Q(e).forEach(function(t){U(t,e)})}},t.load=function(t,e){e=i(e);V(t,e)},t.resetStatus=function(t){r(t)},Z&&function(t,e){if(e)if(e.length)for(var n,a=0;n=e[a];a+=1)o(t,n);else o(t,e)}(t,window.lazyLoadOptions),t});!function(e,t){"use strict";function a(){t.body.classList.add("litespeed_lazyloaded")}function n(){console.log("[LiteSpeed] Start Lazy Load Images"),d=new LazyLoad({elements_selector:"[data-lazyloaded]",callback_finish:a}),o=function(){d.update()},e.MutationObserver&&new MutationObserver(o).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0})}var d,o;e.addEventListener?e.addEventListener("load",n,!1):e.attachEvent("onload",n)}(window,document);</script><script data-no-optimize="1">var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"");litespeed_vary||fetch("/wp-content/plugins/litespeed-cache/guest.vary.php",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});</script><script data-optimized="1" type="litespeed/javascript" data-src="https://www.npspro.cn/wp-content/litespeed/js/fff0d437a2f491f1cb79feddfb95727c.js?ver=15284"></script><script>const litespeed_ui_events=["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}</script></body></html> <!-- Page optimized by LiteSpeed Cache @2025-05-06 12:41:35 --> <!-- Page supported by LiteSpeed Cache 6.2.0.1 on 2025-05-06 12:41:35 --> <!-- Guest Mode --> <!-- QUIC.cloud UCSS in queue -->