如何用java读取excel2003的单元格的数据?着急啊~~~~~~~ 第三方的包 jxl 只支持excel95、97、2000,现在我想读2003的,应该用哪个包,该如何用?急~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这对我来说也是个问题,search一下吧,关键词:java excel2003 import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFCell;import java.io.FileInputStream;public class ReadXL { /** Excel文件的存放位置。注意是正斜线*/ public static String fileToBeRead="D:\\book2.xls"; public static void main(String argv[]){ try{ // 创建对Excel工作簿文件的引用 HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead)); // 创建对工作表的引用。 // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1") HSSFSheet sheet = workbook.getSheetAt(0); // 也可用getSheetAt(int index)按索引引用, // 在Excel文档中,第一张工作表的缺省索引是0, // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0); // 读取左上端单元 System.out.print("First RowNum:"+sheet.getFirstRowNum()); System.out.print("Last RowNum:"+sheet.getLastRowNum() ); HSSFRow row = sheet.getRow(0); HSSFCell cell = row.getCell((short)0); // 输出单元内容,cell.getStringCellValue()就是取所在单元的值 System.out.println("左上端单元是: " + cell.getStringCellValue()); }catch(Exception e) { e.printStackTrace(); System.out.println("已运行xlRead() : " + e ); }}}这个很好用的,我刚用过,不过不能读特别大的数据,通常不能读的原因都是内存不够!看你计算机的性能了,你可以测试一下的!我也有写的,需要就说一声! 这个POI包是JDK自带的还是第三方的? see from import package,it's JDK'S /** * <br>导入Excel数据 * @param HttpServletRequest req * @param HttpServletResponse resp * @param String szPath_file * @param String szFile_name * @return void */ private String ImportExcelData(HttpServletRequest _req,InputStream in ,String sz_FileName,String sz_AllFilePath,ImportProjectServletVO pVO) { boolean binsert=false; String szReturn=""; // ExcelDataExportServlet ExcelHashData =new ExcelDataExportServlet (); //返回所有数据 Hashtable[] hb_data= null; try{ hb_data=ExcelHashData.ExcelDataExportHash(in); }catch(Exception e){} String szStatus=""; Hashtable[] hbTask = null; int iNewFlag = 3; //int iFlag = 0; try { if(hb_data==null) return "ERR"; else { for(int i=3;i<hb_data.length;i++) { if(i!=3&&i!=(hb_data.length-1)&& !getHashtableValue(hb_data[i],"FIELD1").equals("")&& getHashtableValue(hb_data[i],"FIELD0").equals("")) { hbTask = new Hashtable[i-iNewFlag+3]; hbTask[0] = new Hashtable(); hbTask[0] = hb_data[0]; hbTask[1] = new Hashtable(); hbTask[1] = hb_data[1]; hbTask[2] = new Hashtable(); hbTask[2] = hb_data[2]; for(int j=iNewFlag;j<i;j++) { hbTask[j-iNewFlag+3] = new Hashtable(); hbTask[j-iNewFlag+3] = hb_data[j]; } iNewFlag = i; ImportTaskThread ttt = new ImportTaskThread(getPoolName(_req), hbTask, ClientPropertyManager.getProperty("TC_IMPORT_PATH")+szFileName, iFlag); iFlag++; } else if(i==(hb_data.length-1)) { hbTask = new Hashtable[(i+1)-iNewFlag+3]; hbTask[0] = new Hashtable(); hbTask[0] = hb_data[0]; hbTask[1] = new Hashtable(); hbTask[1] = hb_data[1]; hbTask[2] = new Hashtable(); hbTask[2] = hb_data[2]; for(int j=iNewFlag;j<=i;j++) { hbTask[j-iNewFlag+3] = new Hashtable(); hbTask[j-iNewFlag+3] = hb_data[j]; } iNewFlag = i; ImportTaskThread ttt = new ImportTaskThread(getPoolName(_req),//myDbaccess, hbTask, ClientPropertyManager.getProperty("TC_IMPORT_PATH")+szFileName, szuserid, iFlag); iFlag++; } } } } catch( Exception eee) { } return szReturn; } /********************************************************************** * @Name: getHashtableValue * @funcation: 取 Hashtable内的值, 如果为空,则返回"" --- 避免返回 null * @param : Hashtable htSource ,String szValue * @return : String * @exception: * Demo: */ private String getHashtableValue( Hashtable htSource ,String szValue) { if( htSource == null ) { return ""; } String szGetVal = (String)htSource.get(szValue); if( szGetVal == null ) { szGetVal =""; } else { szGetVal = szGetVal.trim() ; } return szGetVal; } java怎么判断一个字符串里面的某个字符是不是一个数字 帮忙解释一下红色部分的代码 初学JAVA,问个简单的eclipse的操作 关于编译出现 “-Xlint:unchecked”,怎么解决? 为何不能把String 写入文件? 用Applet 做程序,服务器端怎么配置,需要连接数据库???????????? 大家推荐一本servlet的入门电子书籍和资料好不好? 新手做C/S结构程序时的困惑?高手解惑啊!!!! 关于OA的一个时间算法问题?快帮帮我呀!一定给分 . 最小的java系统 java调用DLL的问题!急! Java中如何获取像素点的颜色?
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
public class ReadXL {
/** Excel文件的存放位置。注意是正斜线*/
public static String fileToBeRead="D:\\book2.xls";
public static void main(String argv[]){
try{
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
// 创建对工作表的引用。
// 本例是按名引用(让我们假定那张表有着缺省名"Sheet1")
HSSFSheet sheet = workbook.getSheetAt(0);
// 也可用getSheetAt(int index)按索引引用,
// 在Excel文档中,第一张工作表的缺省索引是0,
// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);
// 读取左上端单元
System.out.print("First RowNum:"+sheet.getFirstRowNum());
System.out.print("Last RowNum:"+sheet.getLastRowNum() );
HSSFRow row = sheet.getRow(0);
HSSFCell cell = row.getCell((short)0);
// 输出单元内容,cell.getStringCellValue()就是取所在单元的值
System.out.println("左上端单元是: " + cell.getStringCellValue());
}catch(Exception e) {
e.printStackTrace();
System.out.println("已运行xlRead() : " + e );
}
}
}这个很好用的,我刚用过,不过不能读特别大的数据,通常不能读的原因都是内存不够!看你计算机的性能了,你可以测试一下的!我也有写的,需要就说一声!
* <br>导入Excel数据
* @param HttpServletRequest req
* @param HttpServletResponse resp
* @param String szPath_file
* @param String szFile_name
* @return void
*/
private String ImportExcelData(HttpServletRequest _req,InputStream in ,String sz_FileName,String sz_AllFilePath,ImportProjectServletVO pVO)
{ boolean binsert=false;
String szReturn="";
//
ExcelDataExportServlet ExcelHashData =new ExcelDataExportServlet ();
//返回所有数据
Hashtable[] hb_data= null;
try{
hb_data=ExcelHashData.ExcelDataExportHash(in);
}catch(Exception e){}
String szStatus="";
Hashtable[] hbTask = null;
int iNewFlag = 3;
//int iFlag = 0;
try
{
if(hb_data==null)
return "ERR";
else
{
for(int i=3;i<hb_data.length;i++)
{
if(i!=3&&i!=(hb_data.length-1)&&
!getHashtableValue(hb_data[i],"FIELD1").equals("")&&
getHashtableValue(hb_data[i],"FIELD0").equals(""))
{
hbTask = new Hashtable[i-iNewFlag+3];
hbTask[0] = new Hashtable();
hbTask[0] = hb_data[0];
hbTask[1] = new Hashtable();
hbTask[1] = hb_data[1];
hbTask[2] = new Hashtable();
hbTask[2] = hb_data[2];
for(int j=iNewFlag;j<i;j++)
{
hbTask[j-iNewFlag+3] = new Hashtable();
hbTask[j-iNewFlag+3] = hb_data[j];
}
iNewFlag = i;
ImportTaskThread ttt =
new ImportTaskThread(getPoolName(_req),
hbTask,
ClientPropertyManager.getProperty("TC_IMPORT_PATH")+szFileName,
iFlag);
iFlag++;
}
else if(i==(hb_data.length-1))
{
hbTask = new Hashtable[(i+1)-iNewFlag+3];
hbTask[0] = new Hashtable();
hbTask[0] = hb_data[0];
hbTask[1] = new Hashtable();
hbTask[1] = hb_data[1];
hbTask[2] = new Hashtable();
hbTask[2] = hb_data[2];
for(int j=iNewFlag;j<=i;j++)
{
hbTask[j-iNewFlag+3] = new Hashtable();
hbTask[j-iNewFlag+3] = hb_data[j];
}
iNewFlag = i;
ImportTaskThread ttt =
new ImportTaskThread(getPoolName(_req),//myDbaccess,
hbTask,
ClientPropertyManager.getProperty("TC_IMPORT_PATH")+szFileName,
szuserid,
iFlag);
iFlag++;
}
}
}
}
catch( Exception eee)
{
}
return szReturn;
} /**********************************************************************
* @Name: getHashtableValue
* @funcation: 取 Hashtable内的值, 如果为空,则返回"" --- 避免返回 null
* @param : Hashtable htSource ,String szValue
* @return : String
* @exception:
* Demo:
*/
private String getHashtableValue( Hashtable htSource ,String szValue)
{
if( htSource == null )
{
return "";
}
String szGetVal = (String)htSource.get(szValue);
if( szGetVal == null )
{
szGetVal ="";
}
else
{
szGetVal = szGetVal.trim() ;
}
return szGetVal;
}