int i = hssfsheet.getLastRowNum();getLastRowNum是获取最后一条数据的行数,原来有5条记录,那么就获取5。这个没有问题
可是当我删除一条记录后,本应该获取4,他还获取5。
当我把数据增加到6条的时候,他获取6,也没有问题。
可是当我再删除一条记录后,本应该获取5,他还获取6。不知各位用过POI的大虾是否遇到过类似的问题。请大家帮帮忙吧!我的成败在此一举了。各位,行行好吧!走过路过的不要错过!!!跪谢!!!
可是当我删除一条记录后,本应该获取4,他还获取5。
当我把数据增加到6条的时候,他获取6,也没有问题。
可是当我再删除一条记录后,本应该获取5,他还获取6。不知各位用过POI的大虾是否遇到过类似的问题。请大家帮帮忙吧!我的成败在此一举了。各位,行行好吧!走过路过的不要错过!!!跪谢!!!
1.Servlet代码;
package cn.ac.ict;
import java.io.IOException;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.*;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.util.Enumeration;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class POIExcelServlet extends HttpServlet{
private String poiexcelPath="";
public void init(ServletConfig config)throws ServletException{
super.init(config);
poiexcelPath="E:\\PublishBook\\JSP\\File\\telx.xls";
}
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
doPost(request,response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
CreateExcel(this.poiexcelPath,request);
readExcel(this.poiexcelPath,response);
}
public void CreateExcel(String filename, HttpServletRequest request) {
String outputFile=filename;
int i=1;
String name;
String value;
try{
HSSFWorkbook workbook=new HSSFWorkbook();
HSSFSheet sheet=workbook.createSheet("New Sheet");
HSSFRow row=sheet.createRow((short)0);
HSSFCell cell=row.createCell((short)0);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("Parameter name");
cell=row.createCell((short)1);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue("Parameter name");
Enumeration enum1=request.getParameterNames();
System.out.println(enum1.toString());
while(enum1.hasMoreElements()){
row=sheet.createRow((short)1);
cell=row.createCell((short)0);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
name=(String)enum1.nextElement();
value=(String)request.getParameter(name);
cell.setCellValue(name);
System.out.println("name="+name+"\n");
cell=row.createCell((short)1);
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
cell.setCellValue(value);
System.out.println("value="+value+"\n");
i++;
}
FileOutputStream fOut=new FileOutputStream(outputFile);
workbook.write(fOut);
fOut.flush();
fOut.close();
System.out.println("文件生成---");
}catch(Exception e){
System.out.println("已经运行了ExcelCreate()"+e);
}
}
public void readExcel(String filename, HttpServletResponse response)
throws IOException{
DecimalFormat df=new DecimalFormat("#");
String fileToBeRead=filename;
PrintWriter out=response.getWriter();
try{
HSSFWorkbook workbook=new HSSFWorkbook(new FileInputStream(fileToBeRead));
for(int numSheets=0;numSheets<workbook.getNumberOfSheets();numSheets++){
if(null!=workbook.getSheetAt(numSheets)){
HSSFSheet aSheet=workbook.getSheetAt(numSheets);
for(int rowNumOfSheet=0;rowNumOfSheet<=aSheet.getLastRowNum();rowNumOfSheet++){
if(null!=aSheet.getRow(rowNumOfSheet)){
HSSFRow aRow=aSheet.getRow(rowNumOfSheet);
for(short cellNumOfRow=0;cellNumOfRow<=aRow.getLastCellNum();cellNumOfRow++){
if(aRow.getCell(cellNumOfRow)!=null){
HSSFCell aCell=aRow.getCell(cellNumOfRow);
int cellType=aCell.getCellType();
switch(cellType){
case 0:
String strCell=df.format(aCell.getNumericCellValue());
out.println(strCell+" ");
break;
case 1:
strCell=aCell.getStringCellValue();
out.println(strCell+" ");
break;
default:
out.println("数据格式不对,无法读取");
}
}
}
out.print("<br>");
}
}
}
}
}catch(Exception e){
System.out.println("ReadExcelError"+e);
}
}}
2.poi.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>POIExcel操作介绍</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head>
<body>
<form action="poiexcel" method="post">
<input name="input_1" type="text">
<input name="input_2" type="text"><br>
<input name="input_3" type="text">
<input name="input_4" type="text"><br>
<input name="input_5" type="text">
<input name="" type="submit"><input name="" type="reset">
</form>
</body>
</html>
3.web.xml配置
<servlet>
<servlet-name>poiexcel</servlet-name>
<servlet-class>cn.ac.ict.POIExcelServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>poiexcel</servlet-name>
<url-pattern>/poiexcel</url-pattern>
</servlet-mapping>
上面是我用Jsp技术做的一个小应用,没有加注解,你看看吧