JTable导出导入表格
纯JS将table表格导出到excel的方法
纯JS将table表格导出到excel的⽅法html<div ><button type="button" onclick="getXlsFromTbl('tableExcel','myDiv')">IE导出Excel⽅法</button><button type="button" onclick="method5('tableExcel')">Chrome导出Excel</button></div><div id="myDiv"><table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0"><tr><td colspan="5" align="center">html 表格导出到Excel</td></tr><tr><td>列标题1</td><td>列标题2</td><td>类标题3</td><td>列标题4</td><td>列标题5</td></tr><tr><td>aaa</td><td>bbb</td><td>ccc</td><td>ddd</td><td>eee</td></tr><tr><td>AAA</td><td>BBB</td><td>CCC</td><td>DDD</td><td>EEE</td></tr><tr><td>FFF</td><td>GGG</td><td>HHH</td><td>III</td><td>JJJ</td></tr></table></div>js<script language="JavaScript" type="text/javascript">//IE⽅法function getXlsFromTbl(inTblId, inWindow){try {var allStr = "";var curStr = "";if (inTblId != null && inTblId != "" && inTblId != "null") {curStr = getTblData(inTblId, inWindow);}if (curStr != null) {allStr += curStr;}else {alert("你要导出的表不存在");return;}var fileName = getExcelFileName();doFileExport(fileName, allStr);}catch(e) {alert("导出发⽣异常:" + + "->" + e.description + "!");}}function getTblData(inTbl, inWindow) {var rows = 0;var tblDocument = document;if (!!inWindow && inWindow != "") {if (!document.all(inWindow)) {return null;}else {tblDocument = eval(inWindow).document;}}var curTbl = tblDocument.getElementById(inTbl);var outStr = "";if (curTbl != null) {for (var j = 0; j < curTbl.rows.length; j++) {for (var i = 0; i < curTbl.rows[j].cells.length; i++) {if (i == 0 && rows > 0) {outStr += " t";rows -= 1;}outStr += curTbl.rows[j].cells[i].innerText + "t";if (curTbl.rows[j].cells[i].colSpan > 1) {for (var k = 0; k < curTbl.rows[j].cells[i].colSpan - 1; k++) { outStr += " t";}}if (i == 0) {if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {rows = curTbl.rows[j].cells[i].rowSpan - 1;}}}outStr += "rn";}}else {outStr = null;alert(inTbl + "不存在 !");}return outStr;}function getExcelFileName() {var d = new Date();var curYear = d.getYear();var curMonth = "" + (d.getMonth() + 1);var curDate = "" + d.getDate();var curHour = "" + d.getHours();var curMinute = "" + d.getMinutes();var curSecond = "" + d.getSeconds();if (curMonth.length == 1) {curMonth = "0" + curMonth;}if (curDate.length == 1) {curDate = "0" + curDate;}if (curHour.length == 1) {curHour = "0" + curHour;}if (curMinute.length == 1) {curMinute = "0" + curMinute;}if (curSecond.length == 1) {curSecond = "0" + curSecond;}var fileName = "table" + "_" + curYear + curMonth + curDate + "_"+ curHour + curMinute + curSecond + ".csv";return fileName;}function doFileExport(inName, inStr) {var xlsWin = null;if (!!document.all("glbHideFrm")) {xlsWin = glbHideFrm;}else {var width = 6;var height = 4;var openPara = "left=" + (window.screen.width / 2 - width / 2)+ ",top=" + (window.screen.height / 2 - height / 2)+ ",scrollbars=no,width=" + width + ",height=" + height;xlsWin = window.open("", "_blank", openPara);}xlsWin.document.write(inStr);xlsWin.document.close();xlsWin.document.execCommand('Saveas', true, inName);xlsWin.close();}//Chrome⽅法var idTmr;function getExplorer() {var explorer = erAgent ;//ieif (explorer.indexOf("MSIE") >= 0) {return 'ie';}//firefoxelse if (explorer.indexOf("Firefox") >= 0) {return 'Firefox';}//Chromeelse if(explorer.indexOf("Chrome") >= 0){return 'Chrome';}//Operaelse if(explorer.indexOf("Opera") >= 0){return 'Opera';}//Safarielse if(explorer.indexOf("Safari") >= 0){return 'Safari';}}function method5(tableid) {if(getExplorer()=='ie'){var curTbl = document.getElementById(tableid);var oXL = new ActiveXObject("Excel.Application");var oWB = oXL.Workbooks.Add();var xlsheet = oWB.Worksheets(1);var sel = document.body.createTextRange();sel.moveToElementText(curTbl);sel.select();sel.execCommand("Copy");xlsheet.Paste();oXL.Visible = true;try {var fname = oXL.Application.GetSaveAsFilename("Excel.xls", "Excel Spreadsheets (*.xls), *.xls"); } catch (e) {print("Nested catch caught " + e);} finally {oWB.SaveAs(fname);oWB.Close(savechanges = false);oXL.Quit();oXL = null;idTmr = window.setInterval("Cleanup();", 1);}}else{tableToExcel(tableid)}}function Cleanup() {window.clearInterval(idTmr);CollectGarbage();}var tableToExcel = (function() {var uri = 'data:application/vnd.ms-excel;base64,',template = '<html><head><meta charset="UTF-8"></head><body><table>{table}</table></body></html>',base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) },format = function(s, c) {return s.replace(/{(\w+)}/g,function(m, p) { return c[p]; }) }return function(table, name) {if (!table.nodeType) table = document.getElementById(table)var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}window.location.href = uri + base64(format(template, ctx))}})()</script>到此这篇关于纯JS将table表格导出到excel的⽅法的⽂章就介绍到这了,更多相关js table表格导出excel内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
java excel导入导出总结
java excel导入导出总结Java是一种常用的编程语言,它具有很多强大的功能和库,可以用来处理各种各样的任务。
其中之一就是处理Excel文件的导入和导出操作。
在本文中,我们将总结一下Java中如何进行Excel的导入和导出操作,并介绍一些常用的技巧和注意事项。
一、Excel的导入操作在Java中,我们可以使用Apache POI库来进行Excel文件的导入操作。
首先,我们需要在项目中引入Apache POI的相关依赖。
然后,我们可以通过以下步骤来实现Excel的导入:1. 创建一个Workbook对象,用于表示Excel文件。
2. 根据文件路径或输入流创建一个InputStream对象,用于读取Excel文件的内容。
3. 根据文件的扩展名(xls或xlsx),创建一个合适的Workbook实现类的对象。
4. 通过Workbook对象的getSheet()方法获取一个Sheet对象,用于表示Excel文件中的一个工作表。
5. 遍历Sheet对象的每一行和每一列,读取单元格中的数据。
注意事项:- 在读取单元格数据时,我们需要根据单元格的类型来选择合适的读取方法。
例如,如果单元格中的数据是字符串类型,我们可以使用getStringCellValue()方法来读取。
- 在处理日期类型的数据时,我们可以使用DateUtil类来将Excel 中的日期值转换为Java中的Date对象。
- 在遍历行和列时,我们可以使用for循环或迭代器来实现。
二、Excel的导出操作与Excel的导入操作类似,我们同样可以使用Apache POI库来进行Excel文件的导出操作。
下面是导出Excel文件的一般步骤:1. 创建一个Workbook对象,用于表示Excel文件。
2. 创建一个Sheet对象,用于表示Excel文件中的一个工作表。
3. 创建行对象和单元格对象,用于表示Excel文件中的行和单元格。
4. 设置单元格的值和格式。
Java中导入、导出Excel
Java中导⼊、导出Excel⼀、介绍当前B/S模式已成为应⽤开发的主流,⽽在企业办公系统中,常常有客户这样⼦要求:你要把我们的报表直接⽤Excel打开(电信系统、银⾏系统)。
或者是:我们已经习惯⽤Excel 打印。
这样在我们实际的开发中,很多时候需要实现导⼊、导出Excel的应⽤。
⽬前,⽐较常⽤的实现Java导⼊、导出Excel的技术有两种Jakarta POI和Java Excel下⾯我就分别讲解⼀下如何使⽤这两个技术实现导⼊、导出Excel⼆、使⽤Jakarta POI导⼊、导出ExcelJakarta POI 是⼀套⽤于访问微软格式⽂档的Java API。
Jakarta POI有很多组件组成,其中有⽤于操作Excel格式⽂件的HSSF和⽤于操作Word的HWPF,在各种组件中⽬前只有⽤于操作Excel的HSSF相对成熟。
官⽅主页,API⽂档2.1 环境配置2.1.1下载jar官⽅下载:这⾥可以下载到它的最新版本和⽂档,⽬前最新版本是3.7,这⾥使⽤⽐较稳定的3.6版。
2.1.2加⼊jar包将根⽬录下的poi-3.6-20091214.jar和Lib⽬录下三个通⽤包 commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar拷贝到项⽬的Lib下2.2 Jakarta POI HSSF API组件HSSF(⽤于操作Excel的组件)提供给⽤户使⽤的对象在ermodel包中,主要部分包括Excel对象,样式和格式,还有辅助操作。
有以下⼏种对象:常⽤组件:HSSFWorkbook excel的⽂档对象HSSFSheet excel的表单HSSFRow excel的⾏HSSFCell excel的格⼦单元HSSFFont excel字体HSSFDataFormat ⽇期格式HSSFHeader sheet头HSSFFooter sheet尾(只有打印的时候才能看到效果)样式:HSSFCellStyle cell样式辅助操作包括:HSSFDateUtil ⽇期HSSFPrintSetup 打印HSSFErrorConstants 错误信息表2.3 基本操作步骤⾸先,理解⼀下⼀个Excel的⽂件的组织形式,⼀个Excel⽂件对应于⼀个workbook(HSSFWorkbook),⼀个workbook可以有多个sheet(HSSFSheet)组成,⼀个sheet是由多个row(HSSFRow)组成,⼀个row是由多个cell(HSSFCell)组成。
javajtable用法
javajtable用法1. 创建JTable对象:要创建一个JTable对象,可使用其构造函数之一、以下是一个示例:JTable table = new JTable(;2.设置表头:表格的第一行通常称为表头,用于显示列名。
要设置表头,可以使用JTable的getTableHeader(方法和setDefaultRenderer(方法。
下面是一个示例:JTableHeader tableHeader = table.getTableHeader(;tableHeader.setDefaultRenderer(new MyTableHeaderRenderer(); 3.添加到容器:将JTable添加到显示表格的容器中。
例如,将它添加到一个面板中:JPanel panel = new JPanel(;panel.add(table);4.设置数据模型:JTable需要一个数据模型来存储和管理表格数据。
默认情况下,JTable使用DefaultTableModel作为其数据模型。
以下是设置数据模型的示例:DefaultTableModel model = new DefaultTableModel(;table.setModel(model);5.填充表格数据:可以通过添加行和列的方式来填充表格数据。
以下是一个示例:model.addRow(new Object[]{"John Doe", "24", "Male"});model.addRow(new Object[]{"Jane Smith", "30", "Female"}); 6.选择行和列:可以使用JTable的setRowSelectionAllowed(和setColumnSelectionAllowed(方法来允许或禁止行或列的选择。
纯js导出表格
你可以使用`TableExport.js`库来实现在纯JS环境下导出表格到Excel、CSV等格式。
首先,需要引入`TableExport.js`库。
你可以在HTML文件中使用以下代码:```html<script src=""></script>```接下来,给需要导出的表格添加一个ID属性,例如:```html<table id="myTable"><thead><tr><th>Name</th><th>Age</th><th>City</th></tr></thead><tbody><tr><td>John Doe</td><td>30</td><td>New York</td></tr><tr><td>Jane Smith</td><td>25</td><td>Los Angeles</td></tr><tr><td>Bob Johnson</td><td>40</td><td>Chicago</td></tr></tbody></table>```最后,在JS文件中添加以下代码来导出表格:```javascriptvar table = document.getElementById('myTable');var exportBtn = document.createElement('button');exportBtn.innerHTML = 'Export';exportBtn.onclick = function() {TableExport(table, {formats: ['xls', 'csv'],filename: 'table',bootstrap: true,exportButtons: true});};document.body.appendChild(exportBtn);```以上代码会在页面中添加一个“Export”按钮,点击该按钮即可将表格导出为Excel或CSV格式的文件。
jsp中table内容导出到word或excel (转)
90.appExcel=null;
91.}
92.//导出到word
93.//指定页面区域内容导入Word
94.function AllAreaWord(){
95.varoWD=newActiveXObject("Word.Application");
96.varoDC=oWD.Documents.Add("",0,1);
97.varorange=oDC.Range(0,1);
98.varelTable=document.getElementById("datatable");
99.varsel=document.body.createTextRange();
21.</tr>
22.<tralign="center"class="table_2">
23.<tdalign="center">
24.<inputname="classId"value="8913"type="radio"/>
25.</td>
26.<td>
27.
28.<span>项目</span>
5.<metahttp-equiv="cache-control"content="no-cache">
6.<metahttp-equiv="expires"content="0">
js导出HTML的Table到Excel中
js导出HTML的Table到Excel中数据报表作为企事业单位上报和下达的重要信息载体,随着信息化建设的不断推进,在实际的工作中得到了前所未有的应用。
因此,数据报表已经成为管理信息系统中重要的一项功能,并且,由于数据的多样性和统计信息的增加,数据报表的系统实现变得越来越复杂。
Microsoft Excel 软件具有十分强大的制表、表格计算等功能,是普通人员常用的制表工具。
因此Excel在众多企业中的应用十分广泛。
当企业进行信息化建设时,必然需要将Excel的数据导入到信息化系统中去,或将数据导出到Excel 中来。
如果信息化系统采用C/S结构,导出数据到Excel还比较好说,采用B/S结构就不好说了,相关的资料非常的少。
下面本文将介绍一种使用javascript将HTML的Table数据导出到Excel的方法。
1.用javascript操作Excel Excel是一个Com,因此我们在javascript中像其他的开发语言一样创建Excel对象,从而获得访问Excel的能力。
var xls = new ActiveXObject( "Excel.Application" );上面这句话就创建了一个Excel的Application对象。
var xlBook = xls.Workbooks.Add;上面这句话增加一个Excel的WorkBook。
var xlsheet = xlBook.Worksheets(1);上面这句话获得WorkBook的Sheet1对象。
通过xlsheet.Cells(X, Y)可以访问Sheet中的单元格对象,其中X, Y是单元格的坐标位置。
Cell对象有很多属性和方法,这里我们将使用到Cell的Value属性,Border属性等。
下面给出Cell对象三个常用的属性:Cell的Value属性是指表格中的字符串值。
Cell的Interiro.color属性是指单元格的背景色,例如:xlsheet.Cells(CurX, CurY).Interior.color =0x00FF66;Cell的Borders.LineStyle属性是指单元格的边框样式,该属性是整型值,0表示没有边框,1表示Solid形变框,其他的数字则表示其他的边框类型,大家可以逐个试一下。
JS导出Table为excel的三种可行方法
JS导出Table为excel的三种可行方法[html] view plain copy1.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"2."/TR/xhtml1/DTD/xhtml1-transitional.dtd">3.<html xmlns="/1999/xhtml">4.<head>5.<meta http-equiv="Content-Type"content="text/html; charset=gb2312"/>6.<title>WEB页面导出为EXCEL文档的方法</title>7.</head>8.<body>9.<table id="tableExcel"width="100%"border="1"cellspa cing="0"cellpadding="0">10.<tr>11.<td colspan="5"align="center">WEB页面导出为EXCEL文档的方法</td>12.</tr>13.<tr>14.<td>列标题1</td>15.<td>列标题2</td>16.<td>列标题3</td>17.<td>列标题4</td>18.<td>列标题5</td>19.</tr>20.<tr>21.<td>aaa</td>22.<td>bbb</td>23.<td>ccc</td>24.<td>ddd</td>25.<td>eee</td>26.</tr>27.<tr>28.<td>AAA</td>29.<td>BBB</td>30.<td>CCC</td>31.<td>DDD</td>32.<td>EEE</td>33.</tr>34.<tr>35.<td>FFF</td>36.<td>GGG</td>37.<td>HHH</td>38.<td>III</td>39.<td>JJJ</td>40.</tr>41.</table>42.<input type="button"onclick="javascript:method1('ta bleExcel');"value="第一种方法导入到EXCEL">43.<input type="button"onclick="javascript:method2('ta bleExcel');"value="第二种方法导入到EXCEL">44.<input type="button"onclick="javascript:getXlsFrom Tbl('tableExcel',null);"value="第三种方法导入到EXCEL">45.<SCRIPT LANGUAGE="javascript">46.function method1(tableid) {//整个表格拷贝到EXCEL 中47.var curTbl = document.getElementById(tableid);48.var oXL = new ActiveXObject("Excel.Application");49.//创建AX对象excel50.var oWB = oXL.Workbooks.Add();51.//获取workbook对象52.var oSheet = oWB.ActiveSheet;53.//激活当前sheet54.var sel = document.body.createTextRange();55.sel.moveToElementText(curTbl);56.//把表格中的内容移到TextRange中57.sel.select();58.//全选TextRange中内容59.sel.execCommand("Copy");60.//复制TextRange中内容61.oSheet.Paste();62.//粘贴到活动的EXCEL中63.oXL.Visible = true;64.//设置excel可见属性65.}66.function method2(tableid) //读取表格中每个单元到EXCEL中67.{68.var curTbl = document.getElementById(tableid);69.var oXL = new ActiveXObject("Excel.Application");70.//创建AX对象excel71.var oWB = oXL.Workbooks.Add();72.//获取workbook对象73.var oSheet = oWB.ActiveSheet;74.//激活当前sheet75.var Lenr = curTbl.rows.length;76.//取得表格行数77.for (i = 0; i <Lenr; i++)78.{79.var Lenc = curTbl.rows(i).cells.length;80.//取得每行的列数81.for (j = 0; j <Lenc; j++)82.{83.oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).i nnerText;84.//赋值85.}86.}87.oXL.Visible = true;88.//设置excel可见属性89.}90.function getXlsFromTbl(inTblId, inWindow) {91.try {92.var allStr = "";93.var curStr = "";94.//alert("getXlsFromTbl");95.if (inTblId != null && inTblId != "" && inTblId != "null" ) {96.curStr = getTblData(inTblId, inWindow);97.}98.if (curStr != null) {99.allStr += curStr;100.}101.else {102.alert("你要导出的表不存在!");103.return;104.}105.var fileName = getExcelFileName();106.doFileExport(fileName, allStr);107.}108.catch(e) {109.alert("导出发生异常:" + + "->" + e.description + "!");110.}111.}112.function getTblData(inTbl, inWindow) {113.var rows = 0;114.//alert("getTblData is " + inWindow);115.var tblDocument = document;116.if (!!inWindow && inWindow != "") {117.if (!document.all(inWindow)) {118.return null;119.}120.else {121.tblDocument = eval(inWindow).document;122.}123.}124.var curTbl = tblDocument.getElementById(inTbl);125.var outStr = "";126.if (curTbl != null) {127.for (var j = 0; j <curTbl.rows.length; j++) {128.//alert("j is " + j);129.for (var i = 0; i <curTbl.rows[j].cells.length; i++) {130.//alert("i is " + i);131.if (i == 0 && rows > 0) {132.outStr += " \t";133.rows -= 1;134.}135.outStr += curTbl.rows[j].cells[i].innerText + "\t";136.if (curTbl.rows[j].cells[i].colSpan > 1) {137.for (var k = 0; k <curTbl.rows[j].cells[i].colSpan - 1; k ++) {138.outStr += " \t";139.}140.}141.if (i == 0) {142.if (rows == 0 && curTbl.rows[j].cells[i].rowSpan > 1) {143.rows = curTbl.rows[j].cells[i].rowSpan - 1;144.}145.}146.}147.outStr += "\r\n";148.}149.}150.else {151.outStr = null;152.alert(inTbl + "不存在!");153.}154.return outStr;155.}156.function getExcelFileName() {157.var d = new Date();158.var curYear = d.getYear();159.var curMonth = "" + (d.getMonth() + 1);160.var curDate = "" + d.getDate();161.var curHour = "" + d.getHours();162.var curMinute = "" + d.getMinutes();163.var curSecond = "" + d.getSeconds();164.if (curMonth.length == 1) {165.curMonth = "0" + curMonth;166.}167.if (curDate.length == 1) {168.curDate = "0" + curDate;169.}170.if (curHour.length == 1) {171.curHour = "0" + curHour;172.}173.if (curMinute.length == 1) {174.curMinute = "0" + curMinute;175.}176.if (curSecond.length == 1) {177.curSecond = "0" + curSecond;178.}179.var fileName = "leo_zhang" + "_" + curYear + curMont h + curDate + "_"180.+ curHour + curMinute + curSecond + ".csv";181.//alert(fileName);182.return fileName;183.}184.function doFileExport(inName, inStr) {185.var xlsWin = null;186.if (!!document.all("glbHideFrm")) {187.xlsWin = glbHideFrm;188.}189.else {190.var width = 6;191.var height = 4;192.var openPara = "left=" + (window.screen.width / 2 - width / 2)193.+ ",top=" + (window.screen.height / 2 - height / 2) 194.+ ",scrollbars=no,width=" + width + ",height=" + heig ht;195.xlsWin = window.open("", "_blank", openPara);196.}197.xlsWin.document.write(inStr);198.xlsWin.document.close();199.xlsWin.document.execCommand('Saveas', true, inNam e);200.xlsWin.close();201.}202.</SCRIPT>203.</body>204.</html>。
将table数据导出到excel
Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.UTF7;
//关闭ViewState
EnableViewState = false;
//-------------------------------------------------进行table数据的导出
protected void Button1_Click(object sender, EventArgs e)
{
Response.Clear();
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
//把HTML写回浏览器
{ }
以上代码已经修改过,将其复制到你的VS里,绝对正确,这可是经过测试过的哟!
Response.Write(tw.ToString());
Response.End();
}
注意要在命名空间中引用using System.IO;
在你这个事件后添加如下代码:
public override void VerifyRenderingInServerForm(Control control)
this.wfeetb.RenderControl(oHtmlTextWriter);
//this 表示输出本页,tableName表示表格的名字,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
Java的Jtable、从数据库取数据显示在表格中
数据库操作代码:// Load JDBC driverClass.forName("sun.jdbc.odbc.JdbcOdbcDriver");String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver ( *.mdb)};DBQ=access\\test.mdb";Connection con = DriverManager.getConnection(dbUrl, "","");Statement state = con.createStatemen(ResultSet.TYPE_SCROLL_SEN SITIVE,ResultSet.CONCUR_UPDATABLE);// 执行SQL语句String sql = "select * from score";ResultSet rs = state.executeQuery(sql);displayResultSet(rs);rs.close();state.close();con.close();将数据显示在表格中:private void displayResultSet(ResultSet rs) throws SQLEx ception {boolean moreRecords = rs.next(); // 定位到达第一条记录if(!moreRecords) {JOptionPane.showMessageDialog(null, "结果集中无记录", "无记录",RMATION_MESSA GE);return;}Vector rows = new Vector();Vector columnHeads = new Vector();try{ResultSetMetaData rsmd = rs.getMetaData(); // 获得rs结果集中列属性信息for(int i = 1; i <= rsmd.getColumnCou nt(); ++i)columnHeads.addElement(rsmd.getColumn Name(i)); // 获得列名(将列名存放至向量columnHeads)do{rows.addElement(getNextRow(rs, rsmd) );}while(rs.next()); // 利用循环获得所有记录jTable = new JTable(rows, columnHeads); // 将获得的行列数据信息作为参数重新构造表格视图jTable.setSize(new Dimension(383, 81));JScrollPane scroller = new JScrollPane(jT able);// 创建带有滚动条的面板,并将表格视图加入Container c = getContentPane(); // 获取溶器// c.remove(2); //// 从溶器中移除指定控件(本窗体中有二级面板有两个,第一个存放文本域及按钮,第二个存放表格视图,故移除1)c.add(scroller, BorderLayout.CENTER); // 将面板重新加入溶器中c.validate(); // 验证此容器及其所有子组件} catch(SQLException e) {e.printStackTrace();}}private Vector getNextRow(ResultSet rs, ResultSetMetaData rsmd)throws SQLException {Vector currentRow = new Vector(); // 定义一个向量,用于存放记录for(int i = 1; i <= rsmd.getColumnCount(); + +i)currentRow.addElement(rs.getString(i)); // 获取记录return currentRow; // 返回记录}以上代码实现连接access并将取出数据显示在JTable控件上……选择JTable行:jTable.getSelectedRow() != -1用于判断是否有选中行(jTable.getModel().getValueAt(jTable .getSelectedRow(),0)).toString();用于取出选择行的某单元值(0表示该行的第一列以此类推)if (jTable.getSelectedRow() != -1) {String ID =(jTable.getModel().getValueAt(jTable .getSelectedRow(),0)).toString();//这里可以执行数据库操作}。
js实现table导出Excel,保留table样式
js实现table导出Excel,保留table样式js table 保存成excel⽂件浏览器环境:⾕歌浏览器1.在导出Excel的时候,保存table的样式,有2种⽅法,①是在table的⾏内写style样式,②是在模板⾥⾯添加样式2.第⼀种⽅式:⾏内添加样式<td style="font-size: 18px">公司⼀</td>效果:完整代码:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>table td {font-size: 12px;width: 200px;height: 30px;text-align: center;background-color: #4f891e;color: #ffffff;}</style></head><body><a download="table导出Excel" id="excelOut" href="#">table导出Excel</a><table cellspacing="0" cellpadding="0" border="1" id="tableToExcel"><thead><tr><td style="font-size: 18px">公司⼀</td><td>公司⼆⼀</td><td>公司三</td></tr></thead><tbody><tr><td>A公司</td><td>B公司</td><td>C公司</td></tr><tr><td>A公司</td><td>B公司</td><td>C公司</td></tr><tr><td>A公司</td><td>B公司</td><td>C公司</td></tr><tr><td colspan="3">共计</td></tr></tbody></table><script>window.onload = function () {tableToExcel('tableToExcel', '下载模板')};//base64转码var base64 = function (s) {return window.btoa(unescape(encodeURIComponent(s)));};//替换table数据和worksheet名字var format = function (s, c) {return s.replace(/{(\w+)}/g,function (m, p) {return c[p];});}function tableToExcel(tableid, sheetName) {var uri = 'data:application/vnd.ms-excel;base64,';var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"' +'xmlns="/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'+ '<x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets>' + '</x:ExcelWorkbook></xml><![endif]-->' +' <style type="text/css">' +'table td {' +'border: 1px solid #000000;' +'width: 200px;' +'height: 30px;' +' text-align: center;' +'background-color: #4f891e;' +'color: #ffffff;' +' }' +'</style>' +'</head><body ><table class="excelTable">{table}</table></body></html>';if (!tableid.nodeType) tableid = document.getElementById(tableid);var ctx = {worksheet: sheetName || 'Worksheet', table: tableid.innerHTML};document.getElementById("excelOut").href = uri + base64(format(template, ctx));}</script></body></html>3.第⼆种⽅式:在模板⾥⾯⾥⾯添加样式在这⾥⾯添加的样式excel就能找到和识别了var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"' +'xmlns="/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'+ '<x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets>' + '</x:ExcelWorkbook></xml><![endif]-->' +' <style type="text/css">' +'table td {' +'border: 1px solid #000000;' +'width: 200px;' +'height: 30px;' +' text-align: center;' +'background-color: #4f891e;' +'color: #ffffff;' +' }' +'</style>' +'</head><body ><table class="excelTable">{table}</table></body></html>';完整代码:<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>table td {font-size: 12px;width: 200px;height: 30px;text-align: center;background-color: #4f891e;color: #ffffff;}</style></head><body><a download="table导出Excel" id="excelOut" href="#">table导出Excel</a><table cellspacing="0" cellpadding="0" border="1" id="tableToExcel"><thead><tr><td >公司⼀</td><td>公司⼆⼀</td><td>公司三</td></tr></thead><tbody><tr><td>A公司</td><td>B公司</td><td>C公司</td></tr><tr><td>A公司</td><td>B公司</td><td>C公司</td></tr><tr><td>A公司</td><td>B公司</td><td>C公司</td></tr><tr><td colspan="3">共计</td></tr></tbody></table><script>window.onload = function () {tableToExcel('tableToExcel', '下载模板')};//base64转码var base64 = function (s) {return window.btoa(unescape(encodeURIComponent(s)));};//替换table数据和worksheet名字var format = function (s, c) {return s.replace(/{(\w+)}/g,function (m, p) {return c[p];});}function tableToExcel(tableid, sheetName) {var uri = 'data:application/vnd.ms-excel;base64,';var template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel"' +'xmlns="/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>'+ '<x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets>' + '</x:ExcelWorkbook></xml><![endif]-->' +' <style type="text/css">' +'table td {' +'border: 1px solid #000000;' +'width: 200px;' +'height: 30px;' +' text-align: center;' +'background-color: #4f891e;' +'color: #ffffff;' +' }' +'</style>' +'</head><body ><table class="excelTable">{table}</table></body></html>';if (!tableid.nodeType) tableid = document.getElementById(tableid);var ctx = {worksheet: sheetName || 'Worksheet', table: tableid.innerHTML};document.getElementById("excelOut").href = uri + base64(format(template, ctx));}</script></body></html>注意:如果同时添加了⾏内样式和模板样式,⾏内的样式会覆盖模板的样式。
java实现Excel的导入、导出
java实现Excel的导⼊、导出⼀、Excel的导⼊导⼊可采⽤两种⽅式,⼀种是JXL,另⼀种是POI,但前者不能读取⾼版本的Excel(07以上),后者更具兼容性。
由于对两种⽅式都进⾏了尝试,就都贴出来分享(若有错误,请给予指正)⽅式⼀、JXL导⼊所需jar包 JXL.jar1 publicstaticList<PutStorageInfo> readExcelByJXL(String filePath){2 List<PutStorageInfo> infoList =newArrayList<PutStorageInfo>();3 Map<String,List<String>> map =newHashMap<String,List<String>>();4 infoList.clear();5try{6 InputStream is =newFileInputStream(filePath);7 Workbook workbook =Workbook.getWorkbook(is);8//获取第1张表9 Sheet sheet = workbook.getSheet(0);10//获取总的列数11int columns = sheet.getColumns();12//获取总的⾏数13int rows = sheet.getRows();14//先列后⾏(j,i)15for(int i =1; i < rows; i++){16 List<String> contentList =newArrayList<String>();17 contentList.clear();18for(int j =1; j < columns; j++){19 contentList.add(sheet.getCell(j,i).getContents());20}21 map.put("StorageInfo"+i, contentList);22}2324//遍历map集合,封装成bean25for(Map.Entry<String,List<String>> entry : map.entrySet()){26 List<String> list = entry.getValue();27 PutStorageInfo storageInfo =newPutStorageInfo();28 storageInfo.setProductcode(list.get(0));29 storageInfo.setProductsort(list.get(1));30 storageInfo.setProductbrand(list.get(2));31 storageInfo.setProductname(list.get(3));32 storageInfo.setProductquantity(list.get(4));33 storageInfo.setProductcontent(list.get(5));34 storageInfo.setProductnetweight(list.get(6));35 storageInfo.setProductcountry(list.get(7));36 storageInfo.setProductpdate(list.get(8));37 storageInfo.setProductprice(list.get(9));38 storageInfo.setProductmark(list.get(10));3940 infoList.add(storageInfo);41}42 is.close();43 }catch(Exception e){44 e.printStackTrace();45}46return infoList;47 }⽅式⼆、POI导⼊所需jar包poi-3.6-20091214.jarpoi-ooxml-3.6-20091214.jarpoi-ooxml-schemas-3.6-20091214.jarxmlbeans-2.3.0.jardom4j-1.6.1.jarjdom-2.0.6.jar1 publicstaticList<PutStorageInfo> readExcelByPOI(String filePath){2 List<PutStorageInfo> infoList =newArrayList<PutStorageInfo>();3 Map<String,List<String>> map =newHashMap<String,List<String>>();4 infoList.clear();5try{6 InputStream is =newFileInputStream(filePath);78int index = stIndexOf(".");9 String postfix = filePath.substring(index+1);1011 Workbook workbook =null;12if("xls".equals(postfix)){13 workbook =newHSSFWorkbook(is);14 }elseif("xlsx".equals(postfix)){15 workbook =newXSSFWorkbook(is);16}17//获取第1张表18 Sheet sheet = workbook.getSheetAt(0);19//总的⾏数20int rows = sheet.getLastRowNum();21//总的列数--->最后⼀列为null则有问题,读取不完整,将表头的数⽬作为总的列数,没有的则补为null 22int columns = sheet.getRow(0).getLastCellNum();23//先列后⾏24for(int i =1; i <= rows; i++){25 Row row = sheet.getRow(i);26if(null!= row && row.getFirstCellNum()==-1){//这⼀⾏是空⾏,不读取27continue;28}29//这⼀⾏的总列数30// columns = row.getLastCellNum();31 List<String> contentList =newArrayList<String>();32 contentList.clear();33for(int j =1; j < columns; j++){34if(row.getCell(j)!=null){35 row.getCell(j).setCellType(Cell.CELL_TYPE_STRING);36 contentList.add(row.getCell(j).getStringCellValue());37 }else{38 contentList.add("");39}40}41 map.put("StorageInfo"+i, contentList);42}4344//遍历map集合,封装成bean45for(Map.Entry<String,List<String>> entry : map.entrySet()){46 List<String> list = entry.getValue();47 PutStorageInfo storageInfo =newPutStorageInfo();48 storageInfo.setProductcode(list.get(0));49 storageInfo.setProductsort(list.get(1));50 storageInfo.setProductbrand(list.get(2));51 storageInfo.setProductname(list.get(3));52 storageInfo.setProductquantity(list.get(4));53 storageInfo.setProductcontent(list.get(5));54 storageInfo.setProductnetweight(list.get(6));55 storageInfo.setProductcountry(list.get(7));56 storageInfo.setProductpdate(list.get(8));57 storageInfo.setProductprice(list.get(9));58 storageInfo.setProductmark(list.get(10));5960 infoList.add(storageInfo);61}62 is.close();63 }catch(Exception e){64 e.printStackTrace();65}6667return infoList;68 }⼆、Excel导出采⽤JXL实现publicstaticvoid creatExcel(List<PutStorageInfo> storageInfoList,String fileName){try{OutputStream os =newFileOutputStream(fileName);//创建可写的⼯作薄WritableWorkbook workbook =Workbook.createWorkbook(os);//创建第⼀张表WritableSheet sheet = workbook.createSheet("Sheet1",0);//设置根据内容⾃动宽度CellView cellView =newCellView();cellView.setAutosize(true);//在下边for循环中为每⼀列设置//设置列宽度,此种⽅式参数的意思,i-->对应的⾏或列 j-->要设置的宽度// sheet.setColumnView(0, 100);// sheet.setRowView(0, 300);//设置字体加粗且背景颜⾊为黄⾊WritableFont boldFont =newWritableFont(WritableFont.ARIAL,10,WritableFont.BOLD);//⿊体WritableCellFormat cellrFormate =newWritableCellFormat(boldFont);cellrFormate.setBackground(Colour.YELLOW);//先添加表头List<String> titleList = getTitleList();//循环创建单元格,先列后⾏for(int i =0; i < titleList.size(); i++){//sheet.setColumnView(i, cellView);sheet.setColumnView(i,20);Label label =newLabel(i,0, titleList.get(i), cellrFormate);sheet.addCell(label);}LogUtil.logOut(JXLWriteExcel.class,storageInfoList.size()+"");String[][] content = convertToArr(storageInfoList);//设置content的⾃适应当前列的宽度,⽂本太对会⾃动换⾏ new Label(j, i+1, content[i][j-1],contentFormat); WritableCellFormat contentFormat =newWritableCellFormat();contentFormat.setWrap(true);//然后添加⼊库信息条⽬for(int i =0; i < storageInfoList.size(); i++){Label labelID =newLabel(0,i+1,(i+1)+"");sheet.addCell(labelID);for(int j =1; j < titleList.size(); j++){Label label =newLabel(j, i+1, content[i][j-1]);sheet.addCell(label);}}//把创建的内容写⼊到输出流中,并关闭输出流workbook.write();workbook.close();os.close();//将存储了⼊库bean的list清空storageInfoList.clear();}catch(Exception e){e.printStackTrace();}}privatestaticString[][] convertToArr(List<PutStorageInfo> storageInfoList){String[][] content =newString[storageInfoList.size()][11];for(int i =0; i < storageInfoList.size(); i++){PutStorageInfo info = storageInfoList.get(i);//每个bean中总项有11项content[i][0]= info.getProductcode();content[i][1]= info.getProductsort();content[i][2]= info.getProductbrand();content[i][3]= info.getProductname();content[i][4]= info.getProductquantity();content[i][5]= info.getProductcontent();content[i][6]= info.getProductnetweight();content[i][7]= info.getProductcountry();content[i][8]= info.getProductpdate();content[i][9]= info.getProductprice();content[i][10]= info.getProductmark();}return content;}privatestaticList<String> getTitleList(){List<String> list =newArrayList<String>();list.add("Item No.");list.add("Product code");list.add("Sort");list.add("Brand");list.add("Product Name"); list.add("Quantity(Pieces)"); list.add("Content");list.add("Net Weight");list.add("Country");list.add("Best before date"); list.add("Price(EURO)");list.add("Remarks"); return list;}。
【Java】导入导出Excel表格
代码演示
// 实现读学生文件,将读出的信息存放于student集合中 public List<Student> ReadFromExcel(String fileName) {
List<Student> list = new ArrayList<Student>(); File file = new File(fileName); try {
java 导出excel数据的方法
java 导出excel数据的方法主题:Java 导出Excel 数据的方法引言:在开发Java应用程序时,经常需要将数据导出到Excel文件中。
Excel是一种常用的电子表格工具,可以对数据进行分析和可视化展示。
本文将介绍如何使用Java来导出Excel数据,以及实现这一功能的详细步骤。
1. 导入所需库首先,我们需要在Java项目中导入所需的库。
常用的库包括Apache POI和Apache POI-OOXML。
这些库提供了用于操作Excel 文件的类和方法。
2. 创建工作簿和工作表在Java中,我们通过HSSFWorkbook类创建一个新的Excel 工作簿。
然后,使用createSheet方法创建一个新的工作表对象。
我们可以为工作表指定名称,并将其附加到工作簿中。
3. 创建表头在工作表中,我们可以使用createRow方法创建一个新的行对象。
然后,使用createCell方法在行中创建单元格对象。
通过设置单元格的值,可以定义表头的内容。
4. 导出数据接下来,我们可以使用循环遍历数据集,并将数据写入Excel文件中。
每个数据项都可以被写入单元格对象中。
可以根据需要设置单元格的格式和样式。
5. 保存文件当所有数据都被写入Excel文件后,我们可以使用FileOutputStream类将工作簿中的数据保存到硬盘上的某个位置。
通过指定文件路径和文件名,可以将Excel文件保存在所需的位置。
6. 完整代码示例javaimport ermodel.HSSFWorkbook;import ermodel.*;import java.io.FileOutputStream;import java.util.List;public class ExcelExporter {public static void export(List<DataObject> data, String filePath) {try {Workbook workbook = new HSSFWorkbook();Sheet sheet = workbook.createSheet("Sheet 1");创建表头Row headerRow = sheet.createRow(0);Cell cell = headerRow.createCell(0);cell.setCellValue("Column 1");cell = headerRow.createCell(1);cell.setCellValue("Column 2");...导出数据int rowNum = 1;for (DataObject obj : data) {Row row = sheet.createRow(rowNum++);cell = row.createCell(0);cell.setCellValue(obj.getField1());cell = row.createCell(1);cell.setCellValue(obj.getField2());...}保存文件FileOutputStream fileOut = new FileOutputStream(filePath);workbook.write(fileOut);fileOut.close();System.out.println("Excel文件导出成功!");} catch (Exception e) {e.printStackTrace();}}}示例中,我们通过export方法将一个包含数据对象的列表导出到Excel文件中。
jqgrid tableexport高级用法
jqgrid tableexport高级用法jqGrid TableExport插件是一个强大的表格导出工具,用于将jqGrid表格的数据导出为Excel、CSV和PNG格式。
TableExport的高级用法包括:1. 导出选中的行数据:通过TableExport的`rowdata`选项,可以指定需要导出的行数据。
例如:```javascript$('#jqGrid').tableExport({type: 'excel',rowdata: ['1', '3', '5'] // 导出第1、3、5行的数据});```2. 导出指定的列数据:通过TableExport的`coldata`选项,可以指定需要导出的列数据。
例如:```javascript$('#jqGrid').tableExport({type: 'csv',coldata: ['name', 'email'] // 导出名称和邮箱列的数据});```3. 自定义导出文件名:通过TableExport的`fileName`选项,可以自定义导出文件的名称。
例如:```javascript$('#jqGrid').tableExport({type: 'png',fileName: 'myTable' // 导出的文件名为myTable.png});```4. 自定义导出按钮:可以通过TableExport的`exportButton`选项,自定义导出按钮的样式和位置。
例如:```html<button id="exportBtn">导出表格</button><script>$('#exportBtn').click(function() {$('#jqGrid').tableExport({type: 'excel'});});</script>```这些仅是TableExport插件的一些高级用法,通过查阅TableExport的官方文档,你可以了解更多高级用法的细节。
Js导出table内容到Excel的简单实例
Js导出table内容到Excel的简单实例复制代码代码如下:function ExportToExcel(tableId) //读取表格中每个单元到EXCEL中{try{var curTbl = document.getElementById(tableId);var oXL = new ActiveXObject("Excel.Application");//创建AX对象excelvar oWB = oXL.Workbooks.Add();//获取workbook对象var oSheet = oWB.ActiveSheet;var lenRow = curTbl.rows.length;//取得表格⾏数for (i = 0; i < lenRow; i++){var lenCol = curTbl.rows(i).cells.length;//取得每⾏的列数for (j = 0; j < lenCol; j++){oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;}}oXL.Visible = true;//设置excel可见属性}catch(e){if((!+'/v1')){ //ie浏览器alert("⽆法启动Excel,请确保电脑中已经安装了Excel!/n/n如果已经安装了Excel,"+"请调整IE的安全级别。
/n/n具体操作:/n/n"+"⼯具→ Internet选项→安全→⾃定义级别→ ActiveX 控件和插件→对未标记为可安全执⾏脚本的ActiveX 控件初始化并执⾏脚本→启⽤→确定");}else{alert("请使⽤IE浏览器进⾏“导⼊到EXCEL”操作!"); //⽅便设置安全等级,限制为ie浏览器}}}function ExportToExcel(tableId) //读取表格中每个单元到EXCEL中{try{var curTbl = document.getElementById(tableId);var oXL = new ActiveXObject("Excel.Application");//创建AX对象excelvar oWB = oXL.Workbooks.Add();//获取workbook对象var oSheet = oWB.ActiveSheet;var lenRow = curTbl.rows.length;//取得表格⾏数for (i = 0; i < lenRow; i++){var lenCol = curTbl.rows(i).cells.length;//取得每⾏的列数for (j = 0; j < lenCol; j++){oSheet.Cells(i + 1, j + 1).value = curTbl.rows(i).cells(j).innerText;}}oXL.Visible = true;//设置excel可见属性}catch(e){if((!+'/v1')){ //ie浏览器alert("⽆法启动Excel,请确保电脑中已经安装了Excel!/n/n如果已经安装了Excel,"+"请调整IE的安全级别。
js前端实现Table导出excel表格
js前端实现Table导出excel表格⼀、由于公司项⽬需要,需要将表格数据导出为EXCEL表格数据。
环境React+Ant Design⼆、安装插件js-export-excel// yarn安装-记得以管理员⾝份执⾏yarn add js-export-excel// npm安装npm install js-export-excel三、代码事例页⾯先引⼊安装的插件import ExportJsonExcel from 'js-export-excel';按钮:return (<div><Button onClick={this.downloadExcel}>导出Excel表格</Button></div>)调⽤:downloadExcel = () => {const data = this.state.data ? this.state.data : '';//表格数据var option={};let dataTable = [];if (data) {for (let i in data) {if(data){let obj = {'组织ID': data[i].id,'组织代码': data[i].organization_code,'组织名称': data[i].organization_name,}dataTable.push(obj);}}}option.fileName = '组织信息'option.datas=[{sheetData:dataTable,sheetName:'sheet',sheetFilter:['组织ID','组织代码','组织名称'],sheetHeader:['组织ID','组织代码','组织名称'],}];var toExcel = new ExportJsonExcel(option);toExcel.saveExcel();}。
Jsp中的table多表头导出excel文件具体实现
Jsp中的table多表头导出excel⽂件具体实现⾸先引⼊两份JS:copyhtmltoexcel.js以及 tableToExcel.js复制代码代码如下:/** 默认转换实现函数,如果需要其他功能,需⾃⾏扩展* 参数:* tableID : HTML中Table对象id属性值* 详细⽤法参见以下 TableToExcel 对象定义*/function saveAsExcel(tableID){var tb = new TableToExcel(tableID);tb.setFontStyle("Courier New");tb.setFontSize(10);tb.setTableBorder(2);tb.setColumnWidth(7);tb.isLineWrap(false);tb.isAutoFit(true);tb.getExcelFile();}/** 功能:HTML中Table对象转换为Excel通⽤对象.* 作者:Jeva* 时间:2006-08-09* 参数:tableID HTML中Table对象的ID属性值* 说明:* 能适应复杂的HTML中Table对象的⾃动转换,能够⾃动根据⾏列扩展信息* 合并Excel中的单元格,客户端需要安装有Excel* 详细的属性、⽅法引⽤说明参见:Excel的Microsoft Excel Visual Basic参考* ⽰范:* var tb = new TableToExcel('demoTable');* tb.setFontStyle("Courier New");* tb.setFontSize(10); //推荐取值10* tb.setFontColor(6); //⼀般情况不⽤设置* tb.setBackGround(4); //⼀般情况不⽤设置* tb.setTableBorder(2); //推荐取值2* tb.setColumnWidth(10); //推荐取值10* tb.isLineWrap(false);* tb.isAutoFit(true);** tb.getExcelFile();* 如果设置了单元格⾃适应,则设置单元格宽度⽆效* 版本:1.0*/function TableToExcel(tableID) {this.tableBorder = -1; //边框类型,-1没有边框可取1/2/3/4this.backGround = 0; //背景颜⾊:⽩⾊可取调⾊板中的颜⾊编号 1/2/3/4....this.fontColor = 1; //字体颜⾊:⿊⾊this.fontSize = 10; //字体⼤⼩this.fontStyle = "宋体"; //字体类型this.rowHeight = -1; //⾏⾼this.columnWidth = -1; //列宽this.lineWrap = true; //是否⾃动换⾏this.textAlign = -4108; //内容对齐⽅式默认为居中this.autoFit = false; //是否⾃适应宽度this.tableID = tableID;}TableToExcel.prototype.setTableBorder = function (excelBorder) {this.tableBorder = excelBorder ;};TableToExcel.prototype.setBackGround = function (excelColor) {this.backGround = excelColor;};TableToExcel.prototype.setFontColor = function (excelColor) {this.fontColor = excelColor;};TableToExcel.prototype.setFontSize = function (excelFontSize) {this.fontSize = excelFontSize;};TableToExcel.prototype.setFontStyle = function (excelFont) {this.fontStyle = excelFont;};TableToExcel.prototype.setRowHeight = function (excelRowHeight) {this.rowHeight = excelRowHeight;};TableToExcel.prototype.setColumnWidth = function (excelColumnWidth) {this.columnWidth = excelColumnWidth;};TableToExcel.prototype.isLineWrap = function (lineWrap) {if (lineWrap == false || lineWrap == true) {this.lineWrap = lineWrap;}};TableToExcel.prototype.setTextAlign = function (textAlign) {this.textAlign = textAlign;};TableToExcel.prototype.isAutoFit = function(autoFit){if(autoFit == true || autoFit == false)this.autoFit = autoFit ;}//⽂件转换主函数TableToExcel.prototype.getExcelFile = function () {var jXls, myWorkbook, myWorksheet, myHTMLTableCell, myExcelCell, myExcelCell2; var myCellColSpan, myCellRowSpan;try {jXls = new ActiveXObject('Excel.Application');}catch (e) {alert("⽆法启动Excel!\n\n" + e.message +"\n\n如果您确信您的电脑中已经安装了Excel,"+"那么请调整IE的安全级别。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JTable导出表格//如果表格里面有空格(即有表格没有数据)会出现空指针异常package com.ren;import java.io.File;import java.io.FileNotFoundException;import java.text.SimpleDateFormat;import java.util.Date;import javax.swing.JOptionPane;import javax.swing.JTable;import jxl.Workbook;import jxl.format.Alignment;import jxl.format.Colour;import jxl.format.UnderlineStyle;import jxl.format.VerticalAlignment;import bel;import jxl.write.WritableCellFormat;import jxl.write.WritableFont;import jxl.write.WritableSheet;import jxl.write.WritableWorkbook;import jxl.write.WriteException;/**** 把JTable中的数据导出到Excel表格中工具类** @author Administrator**/public class JTableToExcel {/**外部调用的方法* @param file* @param heading* @param inscribe* @param table*/public void export(File file, String heading, String inscribe, JTable table) { try {WritableWorkbook workbook = null;// 创建工作薄if (file.exists()) {// 文件已经存在workbook = Workbook.createWorkbook(file, Workbook.getWorkbook(file));} else { // 文件还不存在workbook = Workbook.createWorkbook(file);}// 创建工作表WritableSheet sheet = workbook.createSheet(heading, workbook.getNumberOfSheets());// 取得Table的行数(rowNum), 列数(colNum)int rowNum = table.getRowCount();int colNum = table.getColumnCount();// 填写主标题fillHeading(sheet, heading, colNum);// 填写列名fillColumnName(sheet, table, colNum);// 填写落款fillInscribe(sheet, inscribe, rowNum, colNum);// 填写数据fillCell(sheet, table, rowNum, colNum);// 写入工作表workbook.write();workbook.close();// 导出成功提示框int dialog = JOptionPane.showConfirmDialog(null, "统计表导出成功!是否现在打开?", "提示", JOptionPane.YES_NO_OPTION);if (dialog == JOptionPane.YES_OPTION) {Runtime.getRuntime().exec("cmd /c start \"\" \"" + file + "\"");}} catch (FileNotFoundException e) {JOptionPane.showMessageDialog(null, "导入数据前请关闭工作表");} catch (Exception e) {JOptionPane.showMessageDialog(null, "没有进行筛选");}}/*** 填写主标题* @param sheet* @param heading* @param colNum* @throws WriteException*/private void fillHeading(WritableSheet sheet, String heading, int colNum) throws WriteException {WritableFont font = new WritableFont(WritableFont.ARIAL, 14, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.RED);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 创建格式化对象format.setAlignment(Alignment.CENTRE);// 水平居中显示format.setVerticalAlignment(VerticalAlignment.CENTRE);// 垂直居中显示sheet.mergeCells(0, 0, colNum - 1, 0); // 合并单元格sheet.setRowView(0, 600); // 设置行高sheet.addCell(new Label(0, 0, heading, format));// 填写工作表}/*** 填写列名* @param sheet* @param table* @param colNum* @throws WriteException*/private void fillColumnName(WritableSheet sheet, JTable table, int colNum) throws WriteException {WritableFont font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 定义格式化对象format.setAlignment(Alignment.CENTRE);// 水平居中显示sheet.setColumnView(0, 15);// 设置列宽for (int col = 0; col < colNum; col++) {Label colName = new Label(col, 1, table.getModel().getColumnName(col), format);sheet.addCell(colName);}}/*** 填写落款* @param sheet* @param inscribe* @param colNum* @param rowNum* @throws WriteException*/private void fillInscribe(WritableSheet sheet, String inscribe, int rowNum, int colNum) throws WriteException {if( inscribe == null || inscribe.length() < 1 ) {inscribe = "导出时间: "+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());}WritableFont font = new WritableFont(WritableFont.ARIAL, 9, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 定义格式化对象format.setAlignment(Alignment.RIGHT);// 水平居中显示sheet.mergeCells(0, rowNum+3, colNum - 1, rowNum+3);// 合并单元格sheet.addCell(new Label(0, rowNum+3, inscribe, format));// 填写工作表}/*** 填写数据* @param sheet* @param talbe* @param rowNum* @param colNum* @throws WriteException*/private void fillCell(WritableSheet sheet, JTable table, int rowNum, int colNum ) throws WriteException {WritableFont font = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK);// 定义字体WritableCellFormat format = new WritableCellFormat(font);// 定义格式化对象format.setAlignment(Alignment.CENTRE); // 水平居中显示for (int i = 0; i < colNum; i++) { // 列for (int j = 1; j <= rowNum; j++) {// 行String str = table.getValueAt(j - 1, i).toString();Label labelN = new Label(i, j+1, str);try {sheet.addCell(labelN);} catch (Exception e) {e.printStackTrace();}}}}}调用:JButton button = new JButton("导出当前表格");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {FileDialog fd = new FileDialog(frame, "保存记录", FileDialog.SAVE);fd.setLocation(400, 250);fd.setVisible(true);String stringfile = fd.getDirectory()+fd.getFile()+".xls";new JTableToExcel().export(new File(stringfile), "员工信息表", "", table_2);}});button.setBounds(10, 442, 192, 23);panel_2.add(button);JTable导出表格package com.ren;import java.io.*;import javax.swing.JOptionPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import jxl.Cell;import jxl.CellType;import belCell;import jxl.NumberCell;import jxl.Sheet;import jxl.Workbook;import jxl.read.biff.BiffException;public class ExcelToJtable {// 参数为“文件”,“默认的模型”,“jtable”public void Import(File file, DefaultTableModel tableModel, JTable jTable) {Workbook rwb = null;Object[] object = new Object[jTable.getColumnCount()];try {FileInputStream is = new FileInputStream(file);rwb = Workbook.getWorkbook(is);// 创建一个workbook类读取excel文件// 得到第i个工作薄Sheet st = rwb.getSheet(0);// 这里有两种方法获取sheet表,1为名字,而为下标,从0开始// //得到st的列数// System.out.println("列"+ st.getColumns());// //得到st的行数// System.out.println("行"+ st.getRows());if (st.getRows() > 2) {//行数大于2的操作for (int t = tableModel.getRowCount() - 1; t >= 0; t--) {tableModel.removeRow(t);}// 行循环for (int i = 2; i < st.getRows(); i++) {//i=2去除表头,表头有多少行,i就等于多少// 列循环for (int j = 0; j < st.getColumns(); j++) {// 得到第j列第i行的数据Cell c00 = st.getCell(j, i);if (c00.getType() == BEL) {LabelCell labelc00 = (LabelCell) c00;object[j] = labelc00.getString();// jTable.setValueAt(labelc00.getString(), i-1, j);} else if (c00.getType() == CellType.NUMBER) {Double numd;int numi;NumberCell numc10 = (NumberCell) c00;numd = new Double(numc10.getValue());numi = numd.intValue();object[j] = numi;// jTable.setValueAt(numi, i-1, j);}}tableModel.addRow(object);}} else {//i=1去除表头,(即表头有多少行,i就等于多少)for (int i = 1; i < st.getRows(); i++) {// 列循环for (int j = 0; j < st.getColumns(); j++) {// 得到第j列第i行的数据Cell c00 = st.getCell(j, i);if (c00.getType() == BEL) {LabelCell labelc00 = (LabelCell) c00;object[j] = labelc00.getString();// jTable.setValueAt(labelc00.getString(), i-1, j);} else if (c00.getType() == CellType.NUMBER) {Double numd;int numi;NumberCell numc10 = (NumberCell) c00;numd = new Double(numc10.getValue());numi = numd.intValue();object[j] = numi;// jTable.setValueAt(numi, i-1, j);}}tableModel.addRow(object);}}/* JOptionPane.showMessageDialog(null, "导入" + file.getName() + "成功","成功", RMATION_MESSAGE);*/} catch (FileNotFoundException e) {//System.out.println("文件" + file.getName() + "没有找到");JOptionPane.showMessageDialog(null,"文件" + file.getName() + "没有找到");} catch (BiffException e) {//System.out.println("文件格式不正确");JOptionPane.showMessageDialog(null,"文件格式不正确");} catch (IOException e) {//System.out.println("文件读写失败");JOptionPane.showMessageDialog(null,"文件读写失败");} finally {// 关闭rwb.close();}}}调用:table_5 = new JTable(); //声明成全局dtm1=new DefaultTableModel(new Object[][] {}, ////声明成全局new String[] {"\u5DE5\u53F7", "\u59D3\u540D", "\u6027\u522B", "\u5E74\u9F84", "\u5165\u5382\u65F6\u95F4", "\u57FA\u672C\u5DE5\u8D44", "\u4EA7\u54C1\u7F16\u53F7", "\u751F\u4EA7\u8F66\u95F4", "\u6C11\u65CF", "\u624B\u673A", "\u751F\u4EA7\u603B\u6570", "\u4EA7\u54C1\u4EF7\u503C", "\u5DE5\u4F5C\u5929\u6570", "\u65F7\u5DE5\u5929\u6570"});table_5.getTableHeader().setReorderingAllowed(false); //表头不可以拖动table_5.setModel(dtm1 );scrollPane_7.setViewportView(table_5);JButton button_10 = new JButton("批量导入信息");button_10.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {FileDialog fd = new FileDialog(frame, "导入数据", FileDialog.LOAD);fd.setLocation(400, 250);fd.setVisible(true);String file_url = fd.getDirectory()+fd.getFile();File file=new File(file_url);new ExcelToJtable().Import(file, dtm1, table_5);table_5.setModel(dtm1 );//再次创建模型(setModel(dtm ))scrollPane_7.setViewportView(table_5);//再次获得视图//数据库添加上表数据int a1 = JOptionPane.showConfirmDialog(null, "你确认要添加以上信息?","确认", JOptionPane.OK_CANCEL_OPTION);if (a1 == JOptionPane.OK_OPTION) {new ClientMain("添加导入的数据");}else{return;}}});button_10.setBounds(441, 522, 112, 23);panel_3.add(button_10);。