欢迎光临
我们一直在努力

用Java轻松实现数据库数据导出为Excel表格 (java导出数据库数据为excel)

在数据处理过程中,将数据库中的数据导出为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
  • 如何从java输出到excel
  • Java怎样将数据库中数据导出为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">如何从java输出到excel</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文件,求完整例子附带数据库。">Java怎样将数据库中数据导出为Excel文件,求完整例子附带数据库。</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> </article> <div class="post-actions"> <a href="javascript:;" etap="like" class="post-like action action-like" data-pid="595325"><i class="tbfa"></i>赞(<span>0</span>)</a> </div> <div class="post-copyright-custom">【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。</div> <div class="shares"><dfn>分享到</dfn><a href="javascript:;" data-url="https://www.27ka.cn/595325.html" class="share-weixin" title="分享到微信"><i class="tbfa"></i></a><a etap="share" data-share="weibo" class="share-tsina" title="分享到微博"><i class="tbfa"></i></a><a etap="share" data-share="qq" class="share-sqq" title="分享到QQ好友"><i class="tbfa"></i></a><a etap="share" data-share="qzone" class="share-qzone" title="分享到QQ空间"><i class="tbfa"></i></a><a etap="share" data-share="line" class="share-line" title="分享到Line"><i class="tbfa"></i></a><a etap="share" data-share="twitter" class="share-twitter" title="分享到X"><i class="tbfa"></i></a><a etap="share" data-share="facebook" class="share-facebook" title="分享到Facebook"><i class="tbfa"></i></a><a etap="share" data-share="telegram" class="share-telegram" title="分享到Telegram"><i class="tbfa"></i></a><a etap="share" data-share="skype" class="share-skype" title="分享到Skype"><i class="tbfa"></i></a></div> <div class="article-tags"></div> <nav class="article-nav"> <span class="article-nav-prev">上一篇<br><a href="https://www.27ka.cn/595324.html" rel="prev">两台MySQL配置主从数据库</a></span> <span class="article-nav-next">下一篇<br><a href="https://www.27ka.cn/595326.html" rel="next">python如何优化循环</a></span> </nav> <div class="relates relates-textcol2"><div class="title"><h3>相关推荐</h3></div><ul><li><a href="https://www.27ka.cn/613537.html">如何查询数据表结构 (oracle数据库模式下)</a></li><li><a href="https://www.27ka.cn/613535.html">如何在C语言中正确关闭数据库连接? (在c 中无法删除数据库中数据库连接)</a></li><li><a href="https://www.27ka.cn/613533.html">学会数据库简单指令,轻松操控数据! (数据库简单指令)</a></li><li><a href="https://www.27ka.cn/613531.html">Unity学习:如何导入矢量数据库? (unity导入矢量数据库)</a></li><li><a href="https://www.27ka.cn/613529.html">迅速高效:体验 Apace 实时数据库的极速处理能力 (apace 实时数据库)</a></li><li><a href="https://www.27ka.cn/613527.html">如何使用PB在数据库中高效保存数据 (pb 数据库保存数据)</a></li><li><a href="https://www.27ka.cn/613525.html">如何提高系统性能?——数据库连接池maxwait (数据库连接池 maxwait)</a></li><li><a href="https://www.27ka.cn/613523.html">轻松获取Access2023数据库:免费下载指南 (access2023数据库下载)</a></li></ul></div> </div> </div> <div class="sidebar"> <div class="widget-on-phone widget widget_ui_orbui"><div class="item"><a href="https://www.sukeyun.com/" target="_blank"><img src="https://www.27ka.cn/wp-content/uploads/2024/09/A0E13A9F04.png"></a></div></div><div class="widget-on-phone widget widget_ui_posts"><h3>热门推荐</h3><ul><li><a target="_blank" href="https://www.27ka.cn/4986.html"><span class="thumbnail"><img data-src="https://www.27ka.cn/wp-content/uploads/2022/05/2022052520161-1.png" alt="云搜网推荐“站群服务器”VPS站群服务器的商家列表-云搜网" src="https://www.27ka.cn/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">云搜网推荐“站群服务器”VPS站群服务器的商家列表</span><span class="muted">2022-05-25</span></a></li><li><a target="_blank" href="https://www.27ka.cn/9161.html"><span class="thumbnail"><img data-src="https://www.27ka.cn/wp-content/uploads/2022/12/2020014124124.webp" alt="云搜网推荐“原生IP”原生静态住宅IP、原生家庭IP、原生传媒IP、解锁tiktok、Netflix、多个游戏等商家平台-云搜网" src="https://www.27ka.cn/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">云搜网推荐“原生IP”原生静态住宅IP、原生家庭IP、原生传媒IP、解锁tiktok、Netflix、多个游戏等商家平台</span><span class="muted">2022-12-04</span></a></li><li><a target="_blank" href="https://www.27ka.cn/4980.html"><span class="thumbnail"><img data-src="https://www.27ka.cn/wp-content/uploads/2022/05/2022052520081-1.png" alt="云搜网推荐“外贸”VPS和服务器的商家列表,全球CN2网络-云搜网" src="https://www.27ka.cn/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">云搜网推荐“外贸”VPS和服务器的商家列表,全球CN2网络</span><span class="muted">2022-05-25</span></a></li><li><a target="_blank" href="https://www.27ka.cn/4992.html"><span class="thumbnail"><img data-src="https://www.27ka.cn/wp-content/uploads/2022/05/2022052520291.png" alt="云搜网推荐海外“服务器”租用推荐:便宜好用、优化线路!-云搜网" src="https://www.27ka.cn/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">云搜网推荐海外“服务器”租用推荐:便宜好用、优化线路!</span><span class="muted">2022-05-25</span></a></li><li><a target="_blank" href="https://www.27ka.cn/4971.html"><span class="thumbnail"><img data-src="https://www.27ka.cn/wp-content/uploads/2022/05/2022052519452.png" alt="云搜网推荐国外VPS,精挑细选“最便宜VPS”,便宜还“靠谱”-云搜网" src="https://www.27ka.cn/wp-content/themes/dux/assets/img/thumbnail.png" class="thumb"></span><span class="text">云搜网推荐国外VPS,精挑细选“最便宜VPS”,便宜还“靠谱”</span><span class="muted">2022-05-25</span></a></li></ul></div><div class="widget-on-phone widget widget_ui_orbui"><div class="item"><h3>分类目录</h3> <div class="tbcm-newtags"> <a href="https://www.27ka.cn/tag/香港vps">香港VPS</a> <a href="https://www.27ka.cn/tag/欧洲vps">欧洲VPS</a> <a href="https://www.27ka.cn/tag/日本vps">日本VPS</a> <a href="https://www.27ka.cn/tag/印尼vps">印尼VPS</a> <a href="https://www.27ka.cn/tag/外贸vps">外贸VPS</a> <a href="https://www.27ka.cn/tag/美国vps">美国VPS</a> <a href="https://www.27ka.cn/tag/迪拜vps">迪拜VPS</a> <a href="https://www.27ka.cn/tag/德国vps">德国VPS</a> <a href="https://www.27ka.cn/tag/韩国vps">韩国VPS</a> <a href="https://www.27ka.cn/tag/便宜vps">便宜VPS</a> <a href="https://www.27ka.cn/tag/英国vps">英国VPS</a> <a href="https://www.27ka.cn/tag/荷兰vps">荷兰VPS</a> <a href="https://www.27ka.cn/tag/南非vps">南非VPS</a> <a href="https://www.27ka.cn/tag/印度vps">印度VPS</a> <a href="https://www.27ka.cn/tag/越南vps">越南VPS</a> <a href="https://www.27ka.cn/tag/法国vps">法国VPS</a> <a href="https://www.27ka.cn/tag/埃及vps">埃及VPS</a> <a href="https://www.27ka.cn/tag/巴林vps">巴林VPS</a> <a href="https://www.27ka.cn/tag/波兰vps">波兰VPS</a> <a href="https://www.27ka.cn/tag/巴西vps">巴西VPS</a> <a href="https://www.27ka.cn/tag/台湾vps">台湾VPS</a> <a href="https://www.27ka.cn/tag/纽约vps">纽约VPS</a> <a href="https://www.27ka.cn/tag/高防vps">高防VPS</a> <a href="https://www.27ka.cn/tag/西雅图vps">西雅图VPS</a> <a href="https://www.27ka.cn/tag/圣何塞vps">圣何塞VPS</a> <a href="https://www.27ka.cn/tag/芝加哥vps">芝加哥VPS</a> <a href="https://www.27ka.cn/tag/达拉斯vps">达拉斯VPS</a> <a href="https://www.27ka.cn/tag/土耳其vps">土耳其VPS</a> <a href="https://www.27ka.cn/tag/新加坡vps">新加坡VPS</a> <a href="https://www.27ka.cn/tag/菲律宾vps">菲律宾VPS</a> <a href="https://www.27ka.cn/tag/俄罗斯vps">俄罗斯VPS</a> <a href="https://www.27ka.cn/tag/柬埔寨vps">柬埔寨VPS</a> <a href="https://www.27ka.cn/tag/搬瓦工vps">搬瓦工VPS</a> <a href="https://www.27ka.cn/tag/大硬盘vps">大硬盘VPS</a> <a href="https://www.27ka.cn/tag/卢森堡vps">卢森堡VPS</a> <a href="https://www.27ka.cn/tag/孟加拉国vps">孟加拉国VPS</a> <a href="https://www.27ka.cn/tag/澳大利亚vps">澳大利亚VPS</a> <a href="https://www.27ka.cn/tag/保加利亚vps">保加利亚VPS</a> <a href="https://www.27ka.cn/tag/马来西亚vps">马来西亚VPS</a> <a href="https://www.27ka.cn/tag/印度尼西亚vps">印度尼西亚VPS</a> <a href="https://www.27ka.cn/tag/沙特阿拉伯vps">沙特阿拉伯VPS</a> <a href="https://www.27ka.cn/tag/CDN">CDN</a> <a href="https://www.27ka.cn/tag/高防cdn">高防CDN</a> <a href="https://www.27ka.cn/tag/云服务器">云服务器</a> <a href="https://www.27ka.cn/tag/香港服务器">香港服务器</a> <a href="https://www.27ka.cn/tag/日本服务器">日本服务器</a> <a href="https://www.27ka.cn/tag/欧洲服务器">欧洲服务器</a> <a href="https://www.27ka.cn/tag/美国服务器">美国服务器</a> <a href="https://www.27ka.cn/tag/德国服务器">德国服务器</a> <a href="https://www.27ka.cn/tag/韩国服务器">韩国服务器</a> <a href="https://www.27ka.cn/tag/英国服务器">英国服务器</a> <a href="https://www.27ka.cn/tag/荷兰服务器">荷兰服务器</a> <a href="https://www.27ka.cn/tag/南非服务器">南非服务器</a> <a href="https://www.27ka.cn/tag/外贸服务器">外贸服务器</a> <a href="https://www.27ka.cn/tag/印度服务器">印度服务器</a> <a href="https://www.27ka.cn/tag/非洲服务器">非洲服务器</a> <a href="https://www.27ka.cn/tag/站群服务器">站群服务器</a> <a href="https://www.27ka.cn/tag/越南服务器">越南服务器</a> <a href="https://www.27ka.cn/tag/台湾服务器">台湾服务器</a> <a href="https://www.27ka.cn/tag/高防服务器">高防服务器</a> <a href="https://www.27ka.cn/tag/新加坡服务器">新加坡服务器</a> <a href="https://www.27ka.cn/tag/菲律宾服务器">菲律宾服务器</a> <a href="https://www.27ka.cn/tag/俄罗斯服务器">俄罗斯服务器</a> </div></div></div></div></section> <footer class="footer"> <div class="container"> <p>© 2014-2025   <a href="https://www.27ka.cn">云搜网</a>   <a href="https://www.27ka.cn/go/beianmiit" rel="external nofollow" target="_blank"> 鄂ICP备2021015104号-2 </a> </script> <a href="https://www.27ka.cn/sitemap.xml"> SiteMap </a> </br> </br> </script></span><strong><span style="color: #ff0000;">本站不销售产品、不代购、不提供技术支持,仅分享信息,请遵纪守法、文明上网。</span></strong></a></p> <script type="pmdelayedscript" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1" data-rocketlazyloadscript="1"> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?c8bb186265646432de4e37fc15f8494d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> </footer> <script>window.TBUI={"www":"https:\/\/www.27ka.cn","uri":"https:\/\/www.27ka.cn\/wp-content\/themes\/dux","ajaxurl":"https:\/\/www.27ka.cn\/wp-admin\/admin-ajax.php","ver":"9.1","roll":"1 2","copyoff":0,"ajaxpager":"0","fullimage":"1","captcha":0,"captcha_comment":0,"captcha_login":1,"captcha_register":1,"table_scroll_m":1,"table_scroll_w":"800","pre_color":1,"pre_copy":1,"lang":{"copy":"\u590d\u5236","copy_success":"\u5df2\u590d\u5236","comment_loading":"\u8bc4\u8bba\u63d0\u4ea4\u4e2d...","comment_cancel_edit":"\u53d6\u6d88\u7f16\u8f91","loadmore":"\u52a0\u8f7d\u66f4\u591a","like_login":"\u70b9\u8d5e\u8bf7\u5148\u767b\u5f55","liked":"\u4f60\u5df2\u8d5e\uff01","delete_post":"\u786e\u5b9a\u5220\u9664\u8fd9\u4e2a\u6587\u7ae0\u5417\uff1f","read_post_all":"\u70b9\u51fb\u9605\u8bfb\u4f59\u4e0b\u5168\u6587","copy_wechat":"\u5fae\u4fe1\u53f7\u5df2\u590d\u5236","sign_password_less":"\u5bc6\u7801\u592a\u77ed\uff0c\u81f3\u5c116\u4f4d","sign_username_none":"\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a","sign_email_error":"\u90ae\u7bb1\u683c\u5f0f\u9519\u8bef","sign_vcode_loading":"\u9a8c\u8bc1\u7801\u83b7\u53d6\u4e2d","sign_vcode_new":" \u79d2\u91cd\u65b0\u83b7\u53d6"},"turnstile_key":""}</script> <!-- Lasso tracking events - Performance --> <script type="text/javascript" src="https://js.lasso.link/lasso-performance.min.js?ver=131.20250419" defer></script> <script type="text/javascript" defer> document.addEventListener("lassoTrackingEventLoaded", function(e) { e.detail.init({ 'lsid': 'ls-o71kiomk7sm7m5mp0tgbmmq59a', 'pid': '595325', 'ipa': '', 'performance': '1', 'matching': '1', }); }); </script> <script type="text/javascript" src="https://www.27ka.cn/wp-content/themes/dux/assets/js/libs/jquery.min.js?ver=9.1" id="jquery-js"></script> <script data-minify="1" type="text/javascript" src="https://www.27ka.cn/wp-content/cache/min/1/wp-content/themes/dux/assets/js/loader.js?ver=1679672520" id="loader-js"></script> <script id="perfmatters-delayed-scripts-js">const pmDelayClick=false;const pmDelayTimer=setTimeout(pmTriggerDOMListener,10*1000);const pmUserInteractions=["keydown","mousedown","mousemove","wheel","touchmove","touchstart","touchend"],pmDelayedScripts={normal:[],defer:[],async:[]},jQueriesArray=[],pmInterceptedClicks=[];var pmDOMLoaded=!1,pmClickTarget="";function pmTriggerDOMListener(){"undefined"!=typeof pmDelayTimer&&clearTimeout(pmDelayTimer),pmUserInteractions.forEach(function(e){window.removeEventListener(e,pmTriggerDOMListener,{passive:!0})}),document.removeEventListener("visibilitychange",pmTriggerDOMListener),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",pmTriggerDelayedScripts):pmTriggerDelayedScripts()}async function pmTriggerDelayedScripts(){pmDelayEventListeners(),pmDelayJQueryReady(),pmProcessDocumentWrite(),pmSortDelayedScripts(),pmPreloadDelayedScripts(),await pmLoadDelayedScripts(pmDelayedScripts.normal),await pmLoadDelayedScripts(pmDelayedScripts.defer),await pmLoadDelayedScripts(pmDelayedScripts.async),await pmTriggerEventListeners(),document.querySelectorAll("link[data-pmdelayedstyle]").forEach(function(e){e.setAttribute("href",e.getAttribute("data-pmdelayedstyle"))}),window.dispatchEvent(new Event("perfmatters-allScriptsLoaded")),pmWaitForPendingClicks().then(()=>{pmReplayClicks()})}function pmDelayEventListeners(){let e={};function t(t,n){function r(n){return e[t].delayedEvents.indexOf(n)>=0?"perfmatters-"+n:n}e[t]||(e[t]={originalFunctions:{add:t.addEventListener,remove:t.removeEventListener},delayedEvents:[]},t.addEventListener=function(){arguments[0]=r(arguments[0]),e[t].originalFunctions.add.apply(t,arguments)},t.removeEventListener=function(){arguments[0]=r(arguments[0]),e[t].originalFunctions.remove.apply(t,arguments)}),e[t].delayedEvents.push(n)}function n(e,t){let n=e[t];Object.defineProperty(e,t,{get:n||function(){},set:function(n){e["perfmatters"+t]=n}})}t(document,"DOMContentLoaded"),t(window,"DOMContentLoaded"),t(window,"load"),t(window,"pageshow"),t(document,"readystatechange"),n(document,"onreadystatechange"),n(window,"onload"),n(window,"onpageshow")}function pmDelayJQueryReady(){let e=window.jQuery;Object.defineProperty(window,"jQuery",{get:()=>e,set(t){if(t&&t.fn&&!jQueriesArray.includes(t)){t.fn.ready=t.fn.init.prototype.ready=function(e){pmDOMLoaded?e.bind(document)(t):document.addEventListener("perfmatters-DOMContentLoaded",function(){e.bind(document)(t)})};let n=t.fn.on;t.fn.on=t.fn.init.prototype.on=function(){if(this[0]===window){function e(e){return e=(e=(e=e.split(" ")).map(function(e){return"load"===e||0===e.indexOf("load.")?"perfmatters-jquery-load":e})).join(" ")}"string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=e(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEach(function(t){delete Object.assign(arguments[0],{[e(t)]:arguments[0][t]})[t]})}return n.apply(this,arguments),this},jQueriesArray.push(t)}e=t}})}function pmProcessDocumentWrite(){let e=new Map;document.write=document.writeln=function(t){var n=document.currentScript,r=document.createRange();let a=e.get(n);void 0===a&&(a=n.nextSibling,e.set(n,a));var i=document.createDocumentFragment();r.setStart(i,0),i.appendChild(r.createContextualFragment(t)),n.parentElement.insertBefore(i,a)}}function pmSortDelayedScripts(){document.querySelectorAll("script[type=pmdelayedscript]").forEach(function(e){e.hasAttribute("src")?e.hasAttribute("defer")&&!1!==e.defer?pmDelayedScripts.defer.push(e):e.hasAttribute("async")&&!1!==e.async?pmDelayedScripts.async.push(e):pmDelayedScripts.normal.push(e):pmDelayedScripts.normal.push(e)})}function pmPreloadDelayedScripts(){var e=document.createDocumentFragment();[...pmDelayedScripts.normal,...pmDelayedScripts.defer,...pmDelayedScripts.async].forEach(function(t){var n=t.getAttribute("src");if(n){var r=document.createElement("link");r.href=n,"module"==t.getAttribute("data-perfmatters-type")?r.rel="modulepreload":(r.rel="preload",r.as="script"),e.appendChild(r)}}),document.head.appendChild(e)}async function pmLoadDelayedScripts(e){var t=e.shift();return t?(await pmReplaceScript(t),pmLoadDelayedScripts(e)):Promise.resolve()}async function pmReplaceScript(e){return await pmNextFrame(),new Promise(function(t){let n=document.createElement("script");[...e.attributes].forEach(function(e){let t=e.nodeName;"type"!==t&&("data-perfmatters-type"===t&&(t="type"),n.setAttribute(t,e.nodeValue))}),e.hasAttribute("src")?(n.addEventListener("load",t),n.addEventListener("error",t)):(n.text=e.text,t()),e.parentNode.replaceChild(n,e)})}async function pmTriggerEventListeners(){pmDOMLoaded=!0,await pmNextFrame(),document.dispatchEvent(new Event("perfmatters-DOMContentLoaded")),await pmNextFrame(),window.dispatchEvent(new Event("perfmatters-DOMContentLoaded")),await pmNextFrame(),document.dispatchEvent(new Event("perfmatters-readystatechange")),await pmNextFrame(),document.perfmattersonreadystatechange&&document.perfmattersonreadystatechange(),await pmNextFrame(),window.dispatchEvent(new Event("perfmatters-load")),await pmNextFrame(),window.perfmattersonload&&window.perfmattersonload(),await pmNextFrame(),jQueriesArray.forEach(function(e){e(window).trigger("perfmatters-jquery-load")});let e=new Event("perfmatters-pageshow");e.persisted=window.pmPersisted,window.dispatchEvent(e),await pmNextFrame(),window.perfmattersonpageshow&&window.perfmattersonpageshow({persisted:window.pmPersisted})}async function pmNextFrame(){return new Promise(function(e){requestAnimationFrame(e)})}function pmReplayClicks(){window.removeEventListener("touchstart",pmTouchStartHandler,{passive:!0}),window.removeEventListener("mousedown",pmTouchStartHandler),pmInterceptedClicks.forEach(e=>{e.target.outerHTML===pmClickTarget&&e.target.dispatchEvent(new MouseEvent("click",{view:e.view,bubbles:!0,cancelable:!0}))})}function pmWaitForPendingClicks(){return new Promise(e=>{window.pmIsClickPending?pmPendingClickFinished=e:e()})}function pmPndingClickStarted(){window.pmIsClickPending=!0}function pmPendingClickFinished(){window.pmIsClickPending=!1}function pmClickHandler(e){e.target.removeEventListener("click",pmClickHandler),pmRenameDOMAttribute(e.target,"pm-onclick","onclick"),pmInterceptedClicks.push(e),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),pmPendingClickFinished()}function pmTouchStartHandler(e){"HTML"!==e.target.tagName&&(pmClickTarget||(pmClickTarget=e.target.outerHTML),window.addEventListener("touchend",pmTouchEndHandler),window.addEventListener("mouseup",pmTouchEndHandler),window.addEventListener("touchmove",pmTouchMoveHandler,{passive:!0}),window.addEventListener("mousemove",pmTouchMoveHandler),e.target.addEventListener("click",pmClickHandler),pmRenameDOMAttribute(e.target,"onclick","pm-onclick"),pmPendingClickStarted())}function pmTouchMoveHandler(e){window.removeEventListener("touchend",pmTouchEndHandler),window.removeEventListener("mouseup",pmTouchEndHandler),window.removeEventListener("touchmove",pmTouchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",pmTouchMoveHandler),e.target.removeEventListener("click",pmClickHandler),pmRenameDOMAttribute(e.target,"pm-onclick","onclick"),pmPendingClickFinished()}function pmTouchEndHandler(e){window.removeEventListener("touchend",pmTouchEndHandler),window.removeEventListener("mouseup",pmTouchEndHandler),window.removeEventListener("touchmove",pmTouchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",pmTouchMoveHandler)}function pmRenameDOMAttribute(e,t,n){e.hasAttribute&&e.hasAttribute(t)&&(event.target.setAttribute(n,event.target.getAttribute(t)),event.target.removeAttribute(t))}window.pmIsClickPending=!1,window.addEventListener("pageshow",e=>{window.pmPersisted=e.persisted}),pmUserInteractions.forEach(function(e){window.addEventListener(e,pmTriggerDOMListener,{passive:!0})}),pmDelayClick&&(window.addEventListener("touchstart",pmTouchStartHandler,{passive:!0}),window.addEventListener("mousedown",pmTouchStartHandler)),document.addEventListener("visibilitychange",pmTriggerDOMListener);</script></body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1745061263 -->