问题: fs = new POIFSFileSystem(new FileInputStream("c:\\AAA.xls")); ========路径是写死的,请问如何使每个用户上传他们各自不同的EXCEL文件,如果这么写,所有的用户都上传服务器C盘下的AA EXCEL文件。如何让每个用户上传他们自己的EXCEL呢?这里应该怎么写?是不是需要每个用户都传一个值,这个值就是他本地的EXCEL路径,但是应该如何写呢?着急,请各位帮忙!
------------------------------------------------------------
package poi;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
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;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class POITest {
public static Connection conn = null;
public static Statement stmt = null;
public static boolean connectDB2() {
try {
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/dstore";
conn = DriverManager.getConnection(url,"root","111111");
stmt = conn.createStatement();
}
//捕获加载驱动程序异常
catch (ClassNotFoundException cnfex) {
System.err.println("装载JDBC驱动程序失败。");
cnfex.printStackTrace();
return false;
}
//捕获连接数据库异常
catch (SQLException sqlex) {
System.err.println("无法连接数据库");
sqlex.printStackTrace();
//System.exit(1); // terminate program
return false;
}
return true;
} public static boolean readExcelToDB2(String userName) {
POIFSFileSystem fs = null;
HSSFWorkbook wb = null;
try {
fs = new POIFSFileSystem(new FileInputStream("c:\\AAA.xls")); ========路径是写死的,请问如何使每个用户上传他们各自不同的EXCEL文件,如何这么写,所有的用户都上传服务器C盘下的AA EXCEL文件。如何让每个用户上传他们自己的EXCEL呢?这里应该怎么写?
wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
return false;
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = null;
HSSFCell cell = null;
String name = "";
long aa =0;
String company = "";
long phone =0;
long mobile =0;
String email = "";
String zu = "";
int rowNum, cellNum;
int i;
rowNum = sheet.getLastRowNum();
for (i = 1; i <= rowNum; i++) {
row = sheet.getRow(i);
//cellNum = row.getLastCellNum();
try{
cell = row.getCell((short) 0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
name = cell.getStringCellValue().trim();name=new String(name.getBytes("GBK"),"latin1");
}catch(Exception e){}
String sql = "insert into listuser(username) values('"+name+"')";
try {
stmt.executeUpdate(sql);
} catch (SQLException e1) {
e1.printStackTrace();
return false;
}
}
return true;
}
}
------------------------------------------------------------
package poi;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
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;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class POITest {
public static Connection conn = null;
public static Statement stmt = null;
public static boolean connectDB2() {
try {
Class.forName("org.gjt.mm.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/dstore";
conn = DriverManager.getConnection(url,"root","111111");
stmt = conn.createStatement();
}
//捕获加载驱动程序异常
catch (ClassNotFoundException cnfex) {
System.err.println("装载JDBC驱动程序失败。");
cnfex.printStackTrace();
return false;
}
//捕获连接数据库异常
catch (SQLException sqlex) {
System.err.println("无法连接数据库");
sqlex.printStackTrace();
//System.exit(1); // terminate program
return false;
}
return true;
} public static boolean readExcelToDB2(String userName) {
POIFSFileSystem fs = null;
HSSFWorkbook wb = null;
try {
fs = new POIFSFileSystem(new FileInputStream("c:\\AAA.xls")); ========路径是写死的,请问如何使每个用户上传他们各自不同的EXCEL文件,如何这么写,所有的用户都上传服务器C盘下的AA EXCEL文件。如何让每个用户上传他们自己的EXCEL呢?这里应该怎么写?
wb = new HSSFWorkbook(fs);
} catch (IOException e) {
e.printStackTrace();
return false;
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row = null;
HSSFCell cell = null;
String name = "";
long aa =0;
String company = "";
long phone =0;
long mobile =0;
String email = "";
String zu = "";
int rowNum, cellNum;
int i;
rowNum = sheet.getLastRowNum();
for (i = 1; i <= rowNum; i++) {
row = sheet.getRow(i);
//cellNum = row.getLastCellNum();
try{
cell = row.getCell((short) 0);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
name = cell.getStringCellValue().trim();name=new String(name.getBytes("GBK"),"latin1");
}catch(Exception e){}
String sql = "insert into listuser(username) values('"+name+"')";
try {
stmt.executeUpdate(sql);
} catch (SQLException e1) {
e1.printStackTrace();
return false;
}
}
return true;
}
}
用户自己选择文件
wb = new HSSFWorkbook(fs);这两句是用来生成Excel的。没有做上传。你应该是先上传然后再用这两句话吧