當前位置:首頁 » 文件管理 » 上傳excel到伺服器java

上傳excel到伺服器java

發布時間: 2023-08-22 10:23:22

① 怎樣將Excel文件導入資料庫(在JSP環境下java代碼)

我只給你說下第二步怎麼樣吧,其他的你自己應該可以解決的。
通過使用第三方包jxl.jar,我以前導過數據,也是解析Excel,將Excel中的數據導入資料庫中,這個包很好下,如果找不到可以留下郵箱
//程序說明: 要導入jxl.jar到Classpath中。
import jxl.*;
import java.io.*;
import jxl.write.*;
/**
* <p>java讀取Excel表格,拷貼心、更新Excel工作薄 </p>
*/
public class Test1 {
public static void main(String[] args) {
jxl.Workbook rwb = null;
try{
//構建Workbook對象 只讀Workbook對象
//直接從本地文件創建Workbook
//從輸入流創建Workbook
InputStream is = new FileInputStream("D://Book1.xls");
rwb = Workbook.getWorkbook(is);
//Sheet(術語:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
//Sheet的下標是從0開始的
//獲取第一張Sheet表
Sheet rs = rwb.getSheet(0);
//獲取Sheet表中所包含的總列數
int rsColumns = rs.getColumns();
//獲取Sheet表中所包含的總行數
int rsRows = rs.getRows();
//獲取指這下單元格的對象引用
for(int i=0;i<rsRows;i++){
for(int j=0;j<rsColumns;j++){
Cell cell = rs.getCell(j,i);
System.out.print(cell.getContents()+" ");
}
System.out.println();
}
//利用已經創建的Excel工作薄創建新的可寫入的Excel工作薄
jxl.write.WritableWorkbook wwb = Workbook.createWorkbook(new File("D://Book2.xls"),rwb);
//讀取第一張工作表
jxl.write.WritableSheet ws = wwb.getSheet(0);
//獲取第一個單元格對象
jxl.write.WritableCell wc = ws.getWritableCell(0, 0);
//決斷單元格的類型,做出相應的轉化
if (wc.getType() == CellType.LABEL) {
Label l = (Label) wc;
l.setString("The value has been modified.");
}
//寫入Excel對象
wwb.write();
wwb.close();
}catch(Exception e){
e.printStackTrace();
}
finally{
//操作完成時,關閉對象,翻譯佔用的內存空間
rwb.close();
}
}
}

② 怎樣通過JSP頁面上傳個Excel文件,並實現Java讀取EXCEL存入資料庫

1。通過jsp頁面接收上傳的excel文件到後台,
2,後台使用java連接資料庫
3.將excel文件通過io文件控制流讀入,然後使用jdbc寫入到資料庫

③ java中怎麼把文件上傳到伺服器的指定路徑

文件從本地到伺服器的功能,其實是為了解決目前瀏覽器不支持獲取本地文件全路徑。不得已而想到上傳到伺服器的固定目錄,從而方便項目獲取文件,進而使程序支持EXCEL批量導入數據。

java中文件上傳到伺服器的指定路徑的代碼:

在前台界面中輸入:

<form method="post" enctype="multipart/form-data" action="../manage/excelImport.do">

請選文件:<input type="file" name="excelFile">

<input type="submit" value="導入" onclick="return impExcel();"/>

</form>

action中獲取前台傳來數據並保存

/**

* excel 導入文件明頌

* @return

* @throws IOException

*/

@RequestMapping("/usermanager/excelImport.do")

public String excelImport(

String filePath,

MultipartFile excelFile,HttpServletRequest request) throws IOException{

log.info("<<悉孫<<<<action:{} Method:{} start>>>>>>","usermanager","excelImport" );

if (excelFile != null){

String filename=excelFile.getOriginalFilename();

String a=request.getRealPath("u/cms/www/201509");

SaveFileFromInputStream(excelFile.getInputStream(),request.getRealPath("u/cms/www/201509"),filename);//保存到服激陸鄭務器的路徑

}

log.info("<<<<<<action:{} Method:{} end>>>>>>","usermanager","excelImport" );

return "";

}

/**

* 將MultipartFile轉化為file並保存到伺服器上的某地

*/

public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException

{

FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);

System.out.println("------------"+path + "/"+ savefile);

byte[] buffer =new byte[1024*1024];

int bytesum = 0;

int byteread = 0;

while ((byteread=stream.read(buffer))!=-1)

{

bytesum+=byteread;

fs.write(buffer,0,byteread);

fs.flush();

}

fs.close();

stream.close();

}

④ Java上傳Excel表格

public boolean myapp_readexcel(String filePath, int sheetNum) {//上傳的文件地址,sheetNum這個是excel下的那個sheet1的標志,sheet1這里對應數字是0
InputStream ins = null;
Workbook book = null;
try {
ins = new FileInputStream(filePath);
book = WorkbookFactory.create(ins);
getInsertData(book.getSheetAt(sheetNum));//這裡面進行讀取操作和業務邏輯
ins.close();

} catch (Exception e1) {
e1.printStackTrace();
} finally {
if (ins != null) {
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return res;
}
private boolean getInsertData(Sheet sheet) {
boolean res = false;
Iterator<Row> rit = sheet.iterator();//每一行的迭代
while (rit.hasNext()) {
lineMap = getDataByRow(rit);

System.out.println(lineMap.get("0"));
System.out.println(lineMap.get("1"));...................................
}

}
public Map<String,String> getDataByRow(Iterator<Row> rit){
Map<String, String> lineMap;
Row row;
Cell cell;
row = rit.next();
lineMap = new ConcurrentHashMap<String, String>(); // 用於接收每列的數據。
for (int i = 0; i <= row.getLastCellNum(); i++) {
cell = row.getCell(i);
String k = ""; // 用於接收每個單元格的數據。
if (cell == null) {
lineMap.put(String.valueOf((i)), k); // 賦值。
continue;
}
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BLANK:
k = "";
break;
case Cell.CELL_TYPE_ERROR:
k = Byte.toString(cell.getErrorCellValue());
break;
case Cell.CELL_TYPE_STRING:
k = cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
k = sdf.format(cell.getDateCellValue());
} else {
k = Integer.toString((int) cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
k = Boolean.toString(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
k = cell.getCellFormula();
break;
default:
k = "";
}
if ((k != null) && (!"".equals(k))) {

lineMap.put(String.valueOf((i)), k); // 賦值。

} else {
lineMap.put(String.valueOf((i)), ""); // 賦值。
}

}
return lineMap;
}

熱點內容
家庭影院配置什麼樣的音響 發布:2025-02-01 14:04:33 瀏覽:543
蘋果手機存儲空間不能用怎麼回事 發布:2025-02-01 14:03:04 瀏覽:256
qq易語言盜號源碼 發布:2025-02-01 14:01:25 瀏覽:810
源神比較好的雲伺服器 發布:2025-02-01 13:55:27 瀏覽:206
黑蘋果idea編譯慢 發布:2025-02-01 13:45:30 瀏覽:548
c和linux 發布:2025-02-01 13:39:38 瀏覽:175
android實現列表 發布:2025-02-01 13:38:06 瀏覽:102
安卓手機為什麼會出現橫條 發布:2025-02-01 13:33:38 瀏覽:625
jqueryajax提交文件上傳 發布:2025-02-01 13:32:03 瀏覽:689
沒連上wifi如何修改wifi密碼 發布:2025-02-01 13:20:42 瀏覽:758