使用jxl对excel进行修改和删除
2010-08-24 11:38
288 查看
jsp页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="jquery-1.1.3.pack.js"></script>
</head>
<style type="text/css">
.textTable{border:none;height:100%;}
</style>
<body>
<div style="display:none">
<table>
<tr id="trBody">
<td style="display:none" id="trCount"></td>
<td id="tdBody1">0</td>
<td id="tdBody2">1</td>
<td id="tdBody3">2</td>
<td id="tdBody4">3</td>
<td id="tdBody5">4</td>
<td id="tdBody6">5</td>
<td id="tdBody7">6</td>
<td id="tdBody8">7</td>
<td id="tdBody9">删除</td>
</tr>
</table>
</div>
<table id="tableBody" border="1">
<tr id="" style="">
<th>0</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
<th>6</th>
<th>7</th>
<th>操作</th>
</tr>
</table>
</body>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/ex_getExcelData.action',//访问后台方法获取数据
success:function(msg){
//alert(msg);//后台传递过来的数据(数据格式:1,2,3,4,5,6,7,8:)
//使用text的ID来表示当前TEXT所对应的列
var array = msg.split(":");
for(var i=0;i<array.length;i++){
var trBody = $("#trBody").clone();
var array1 = array[i].split(",");
trBody.find("#trCount").html(i); //当前为第几行
trBody.find("#tdBody1").html("<input type='text' value='"+array1[0]+"' class='textTable' id='0' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody2").html("<input type='text' value='"+array1[1]+"' class='textTable' id='1' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody3").html("<input type='text' value='"+array1[2]+"' class='textTable' id='2' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody4").html("<input type='text' value='"+array1[3]+"' class='textTable' id='3' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody5").html("<input type='text' value='"+array1[4]+"' class='textTable' id='4' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody6").html("<input type='text' value='"+array1[5]+"' class='textTable' id='5' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody7").html("<input type='text' value='"+array1[6]+"' class='textTable' id='6' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody8").html("<input type='text' value='"+array1[7]+"' class='textTable' id='7' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody9").text("删除").bind("click",function(){del(this);});
trBody.attr("id","trBodyOne");
trBody.appendTo("#tableBody");
}
}
});
});
var textData = "";
function getData(elem){
textData = $(elem).val();
}
function update(elem){
var closData = $(elem).val()
if(closData != textData){
var closnum = $(elem).attr("id");
var rowsnum = $(elem).parent().parent().find("#trCount").html();
if(closnum == ''){
closnum = '0';
}
if(rowsnum == ''){
rowsnum = '0';
}
//alert(closnum+"____"+rowsnum);
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/ex_updateData.action',//访问后台方法获取数据
data:'closnum='+closnum+'&rowsnum='+rowsnum+'&closData='+closData,
success:function(msg){
}
});
}
}
function del(elem){
var num = $(elem).parent().find("#trCount").html();
if(num == ''){
num = '0';
}
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/ex_deleteData.action',//访问后台方法获取数据
data:'num='+num,
success:function(msg){
}
});
$(elem).parent().remove();
}
</script>
</html>
//java类代码
package com.ot.excel.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.apache.struts2.ServletActionContext;
public class ExcelAction {
public String getExcelData() throws IOException
{
ServletActionContext.getResponse().setCharacterEncoding("utf-8");
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
PrintWriter out = ServletActionContext.getResponse().getWriter();
System.out.println(ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/"));
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/")+"excel/00014.xls";//���excel�ļ�
try {
InputStream is = new FileInputStream(path);
Workbook wb = Workbook.getWorkbook(is);
Sheet st = wb.getSheet(0);
System.out.println("�ñ文件有多少行:" + st.getRows() + "��");
System.out.println("�ñ文件有多少列:" + st.getColumns() + "��");
// System.out.println("��ȡ������ݣ�");
boolean frist_o = true, frist_t = true, frist_s = true;
StringBuffer excelContents = new StringBuffer("");
for (int j = 0; j < st.getRows(); j++) {
List list = new ArrayList();
// int next = 0;
// System.out.println();
// System.out.println("����"+j+"�е�����ǣ�");
for (int i = 0; i < st.getColumns(); i++) {
if (frist_o) {
System.out.println("��ʼ�����...");
frist_o = false;
}
Cell cell = st.getCell(i, j);
String contents = cell.getContents().trim();
excelContents.append(contents+",");
}
excelContents.setCharAt(excelContents.length()-1, ':');
}
excelContents.setCharAt(excelContents.length()-1, ' ');
String excelData = excelContents.toString();
System.out.println(excelData);
out.print(excelData);
out.flush();
out.close();
is.close();
}catch(Exception e){
e.printStackTrace();
}finally{
}
return null;
}
//删除excel表中的数据
public String deleteData()
{
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/")+"excel/00014.xls";
String num = (String) ServletActionContext.getRequest().getParameter("num");
System.out.println(num);
try {
InputStream is = new FileInputStream(path);
Workbook wb = Workbook.getWorkbook(is);//原xls文件
WritableWorkbook wwb = Workbook.createWorkbook(new File(path), wb);//临时xls文件
WritableSheet sheet = wwb.getSheet("00014");//工作表
sheet.removeRow(Integer.parseInt(num));
wwb.write();
wwb.close();
wb.close();
is.close();
System.out.println("删除完成.");
} catch (Exception e) { // TODO Auto-generated
e.printStackTrace();
}
return null;
}
//对excel表中的数据进行修改
public String updateData()
{
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/")+"excel/00014.xls";
String rowsnum = (String) ServletActionContext.getRequest().getParameter("rowsnum");
String closnum = (String) ServletActionContext.getRequest().getParameter("closnum");
String closData = (String) ServletActionContext.getRequest().getParameter("closData");
System.out.println(rowsnum+"++++"+closnum);
System.out.println(closData);
try {
Workbook wb = Workbook.getWorkbook(new File(path));//原xls文件
WritableWorkbook wwb = Workbook.createWorkbook(new File(path), wb);//打开一个文件的副本,并且指定数据写回到原文件
WritableSheet sheet = wwb.getSheet("00014");//工作表
sheet.addCell(new Label(Integer.parseInt(closnum),Integer.parseInt(rowsnum),closData));
wwb.write();
wwb.close();
wb.close();
System.out.println("更新完成.");
} catch (Exception e) { // TODO Auto-generated
e.printStackTrace();
}
return null;
}
}
//需要jxl.jar的包,使用的是struts2框架
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="jquery-1.1.3.pack.js"></script>
</head>
<style type="text/css">
.textTable{border:none;height:100%;}
</style>
<body>
<div style="display:none">
<table>
<tr id="trBody">
<td style="display:none" id="trCount"></td>
<td id="tdBody1">0</td>
<td id="tdBody2">1</td>
<td id="tdBody3">2</td>
<td id="tdBody4">3</td>
<td id="tdBody5">4</td>
<td id="tdBody6">5</td>
<td id="tdBody7">6</td>
<td id="tdBody8">7</td>
<td id="tdBody9">删除</td>
</tr>
</table>
</div>
<table id="tableBody" border="1">
<tr id="" style="">
<th>0</th>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
<th>6</th>
<th>7</th>
<th>操作</th>
</tr>
</table>
</body>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/ex_getExcelData.action',//访问后台方法获取数据
success:function(msg){
//alert(msg);//后台传递过来的数据(数据格式:1,2,3,4,5,6,7,8:)
//使用text的ID来表示当前TEXT所对应的列
var array = msg.split(":");
for(var i=0;i<array.length;i++){
var trBody = $("#trBody").clone();
var array1 = array[i].split(",");
trBody.find("#trCount").html(i); //当前为第几行
trBody.find("#tdBody1").html("<input type='text' value='"+array1[0]+"' class='textTable' id='0' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody2").html("<input type='text' value='"+array1[1]+"' class='textTable' id='1' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody3").html("<input type='text' value='"+array1[2]+"' class='textTable' id='2' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody4").html("<input type='text' value='"+array1[3]+"' class='textTable' id='3' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody5").html("<input type='text' value='"+array1[4]+"' class='textTable' id='4' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody6").html("<input type='text' value='"+array1[5]+"' class='textTable' id='5' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody7").html("<input type='text' value='"+array1[6]+"' class='textTable' id='6' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody8").html("<input type='text' value='"+array1[7]+"' class='textTable' id='7' onfocus='getData(this)' onblur='update(this)'>");
trBody.find("#tdBody9").text("删除").bind("click",function(){del(this);});
trBody.attr("id","trBodyOne");
trBody.appendTo("#tableBody");
}
}
});
});
var textData = "";
function getData(elem){
textData = $(elem).val();
}
function update(elem){
var closData = $(elem).val()
if(closData != textData){
var closnum = $(elem).attr("id");
var rowsnum = $(elem).parent().parent().find("#trCount").html();
if(closnum == ''){
closnum = '0';
}
if(rowsnum == ''){
rowsnum = '0';
}
//alert(closnum+"____"+rowsnum);
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/ex_updateData.action',//访问后台方法获取数据
data:'closnum='+closnum+'&rowsnum='+rowsnum+'&closData='+closData,
success:function(msg){
}
});
}
}
function del(elem){
var num = $(elem).parent().find("#trCount").html();
if(num == ''){
num = '0';
}
$.ajax({
type:'POST',
url:'<%=request.getContextPath()%>/ex_deleteData.action',//访问后台方法获取数据
data:'num='+num,
success:function(msg){
}
});
$(elem).parent().remove();
}
</script>
</html>
//java类代码
package com.ot.excel.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableCell;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import org.apache.struts2.ServletActionContext;
public class ExcelAction {
public String getExcelData() throws IOException
{
ServletActionContext.getResponse().setCharacterEncoding("utf-8");
ServletActionContext.getResponse().setContentType("text/html;charset=utf-8");
PrintWriter out = ServletActionContext.getResponse().getWriter();
System.out.println(ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/"));
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/")+"excel/00014.xls";//���excel�ļ�
try {
InputStream is = new FileInputStream(path);
Workbook wb = Workbook.getWorkbook(is);
Sheet st = wb.getSheet(0);
System.out.println("�ñ文件有多少行:" + st.getRows() + "��");
System.out.println("�ñ文件有多少列:" + st.getColumns() + "��");
// System.out.println("��ȡ������ݣ�");
boolean frist_o = true, frist_t = true, frist_s = true;
StringBuffer excelContents = new StringBuffer("");
for (int j = 0; j < st.getRows(); j++) {
List list = new ArrayList();
// int next = 0;
// System.out.println();
// System.out.println("����"+j+"�е�����ǣ�");
for (int i = 0; i < st.getColumns(); i++) {
if (frist_o) {
System.out.println("��ʼ�����...");
frist_o = false;
}
Cell cell = st.getCell(i, j);
String contents = cell.getContents().trim();
excelContents.append(contents+",");
}
excelContents.setCharAt(excelContents.length()-1, ':');
}
excelContents.setCharAt(excelContents.length()-1, ' ');
String excelData = excelContents.toString();
System.out.println(excelData);
out.print(excelData);
out.flush();
out.close();
is.close();
}catch(Exception e){
e.printStackTrace();
}finally{
}
return null;
}
//删除excel表中的数据
public String deleteData()
{
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/")+"excel/00014.xls";
String num = (String) ServletActionContext.getRequest().getParameter("num");
System.out.println(num);
try {
InputStream is = new FileInputStream(path);
Workbook wb = Workbook.getWorkbook(is);//原xls文件
WritableWorkbook wwb = Workbook.createWorkbook(new File(path), wb);//临时xls文件
WritableSheet sheet = wwb.getSheet("00014");//工作表
sheet.removeRow(Integer.parseInt(num));
wwb.write();
wwb.close();
wb.close();
is.close();
System.out.println("删除完成.");
} catch (Exception e) { // TODO Auto-generated
e.printStackTrace();
}
return null;
}
//对excel表中的数据进行修改
public String updateData()
{
String path = ServletActionContext.getRequest().getSession().getServletContext().getRealPath
("/")+"excel/00014.xls";
String rowsnum = (String) ServletActionContext.getRequest().getParameter("rowsnum");
String closnum = (String) ServletActionContext.getRequest().getParameter("closnum");
String closData = (String) ServletActionContext.getRequest().getParameter("closData");
System.out.println(rowsnum+"++++"+closnum);
System.out.println(closData);
try {
Workbook wb = Workbook.getWorkbook(new File(path));//原xls文件
WritableWorkbook wwb = Workbook.createWorkbook(new File(path), wb);//打开一个文件的副本,并且指定数据写回到原文件
WritableSheet sheet = wwb.getSheet("00014");//工作表
sheet.addCell(new Label(Integer.parseInt(closnum),Integer.parseInt(rowsnum),closData));
wwb.write();
wwb.close();
wb.close();
System.out.println("更新完成.");
} catch (Exception e) { // TODO Auto-generated
e.printStackTrace();
}
return null;
}
}
//需要jxl.jar的包,使用的是struts2框架
相关文章推荐
- MYSQL使用inner join 进行 查询/删除/修改示例
- java中使用JXL对Excel文件进行数据的写入、导出操作
- MYSQL使用inner join 进行 查询/删除/修改示例
- 使用jxl.jar来进行excel操作
- Java使用jxl对excel文件进行简单的读写
- 使用ITEXT生成pdf文件,使用POI、jxl对excel文件进行读取
- MYSQL使用inner join 进行 查询/删除/修改示例
- 使用jxl.jar进行Excel操作将实例属性存入表中
- 使用Quartz进行动态添加、修改和删除Job的工具类
- 使用SQL语句对表进行插入、修改和删除数据操作
- 工作中遇到的问题--使用注解进行增加删除修改的验证
- 使用jxl实现导出Excel,解决路径和删除文件的问题
- 使用c#进行数据库的查看增加修改删除数据
- MYSQL使用inner join 进行 查询,删除,修改
- 使用标记方式entry方法进行删除和修改
- Hadoop使用Java进行文件修改删除操作
- 如何使用10M的内存读入100M的文件,并且保证在读取过程中可进行删除、修改和增加内容
- 使用POI修改Excel后进行保存
- C++ builder 2007 使用ADO数据库 进行 添加 删除 修改
- Java Swing 使用jxl进行Excel的导入与导出