當前位置:首頁 » 文件管理 » java上傳xls

java上傳xls

發布時間: 2022-11-02 22:31:11

Ⅰ 如何用java把數據寫入到excel

添加Spire.Xls.jar依賴,可以創建Excel,或者對現有Excel文檔進行處理。

1.寫入數據到指定單元格

//CreateaWorkbookinstance
Workbookwb=newWorkbook();
//Getthefirstworksheet
Worksheetsheet=wb.getWorksheets().get(0);
//Writetextinthespecificcell
sheet.getCellRange(1,1).setText("HelloWorld");
//Savethefile
wb.saveToFile("HelloWorld.xlsx",ExcelVersion.Version2016)

2. 將數組導入Excel

//CreateaWorkbookinstance
Workbookwb=newWorkbook();
//Getthefirstworksheet
Worksheetsheet=wb.getWorksheets().get(0);
//Insertanarraytothefirstcolumn()
String[]stringArray=newString[]{"Apple","Pear","Grape","Banana","Peach"}
sheet.insertArray(stringArray,1,1,true);
//Savethefile
wb.saveToFile("InsertArray.xlsx",ExcelVersion.Version2016);

Ⅱ java 我要將xls格式的文件導入解析入庫,但被框架的jar類攔截

1. 以.csv格式讀取
將.xls轉換成.csv的文本格式,然後再用php分析這個文件,和PHP分析文本沒有什麼區別。
優點:跨平台,效率比較高、可以讀寫。
缺點:只能直接使用.csv的文件,如果經常接受.xls二進制文件的話需要手工轉換,不能自動化。一個文件只有一個SHEET。
PHP有自帶的分析.csv函數:fgetcsv
2. ODBC鏈接數據源
優點:支持多種格式,cvs, xls等。支持讀寫,使用標准SQL語言,和SQLSERVER、MYSQL資料庫幾乎完全一樣。
缺點:值支持windows伺服器
3. PHP自定義類
優點:跨平台。某些類支持寫操作。支持.xls二進制文件
常用的類有phpExcelReader、PHPExcel。其中後者支持讀寫,但是需要php5.2以上版本。
phpExcelReader是專門用來讀取文件的。返回一個數組,包含表格的所有內容。

Ⅲ 1.如何將客戶端的 xls 上傳到 伺服器 2.將剛剛的文件導入伺服器SqlServer 3.服務端用java

xls只是一個文件而已,前台將文件上傳到伺服器即可,
在伺服器得到該上傳文件的數據流,序列化後存入資料庫就行了
不過為什麼要存到資料庫去呢,你可以存到硬碟中,在資料庫中存這個文件在硬碟中的地址就行了

Ⅳ 從excel表格讀取數據用Java代碼實現批量上傳寫入資料庫

java操作Excel的一種方法:在開源世界中,有兩套比較有影響的API可供使用,一個是POI,一個是jExcelAPI。其中jExcelAPI是一個韓國程序員的作品,雖然沒有POI那樣血統高貴,但是在使用過程中,感覺簡單方便,對中文支持非常好,功能也比較強大。它的下載地址是: http://www.andykhan.com/jexcelapi/ 當前的最高版本是2.4。作者的網站上對它的特徵有如下描述:

● 支持Excel 95-2000的所有版本
● 生成Excel 2000標准格式
● 支持字體、數字、日期操作
● 能夠修飾單元格屬性
● 支持圖像和圖表

搭建環境

將下載後的文件解包,得到jxl.jar,放入classpath,安裝就完成了。

基本操作

一、創建文件

擬生成一個名為「測試數據.xls」的Excel文件,其中第一個工作表被命名為「第一頁」,大致效果如下:

代碼(CreateXLS.java):

//生成Excel的類
import java.io.*;
import jxl.*;
import jxl.write.*;

public class CreateXLS
{
public static void main(String args[])
{
try
{
//打開文件
WritableWorkbook book=
Workbook.createWorkbook(new File(「測試.xls」));

//生成名為「第一頁」的工作表,參數0表示這是第一頁
WritableSheet sheet=book.createSheet(「第一頁」,0);

//在Label對象的構造子中指名單元格位置是第一列第一行(0,0)
//以及單元格內容為test
Label label=new Label(0,0,」test」);

//將定義好的單元格添加到工作表中
sheet.addCell(label);

/*生成一個保存數字的單元格
必須使用Number的完整包路徑,否則有語法歧義
單元格位置是第二列,第一行,值為789.123*/
jxl.write.Number number = new jxl.write.Number(1,0,789.123);
sheet.addCell(number);

//寫入數據並關閉文件
book.write();
book.close();

}catch(Exception e)
{
System.out.println(e);
}
}
}

編譯執行後,會在當前位置產生一個Excel文件。

三、讀取文件

以剛才我們創建的Excel文件為例,做一個簡單的讀取操作,程序代碼如下:

//讀取Excel的類
import java.io.*;
import jxl.*;

public class ReadXLS
{
public static void main(String args[])
{
try
{
Workbook book=
Workbook.getWorkbook(new File(「測試.xls」));

//獲得第一個工作表對象
Sheet sheet=book.getSheet(0);

//得到第一列第一行的單元格
Cell cell1=sheet.getCell(0,0);
String result=cell1.getContents();
System.out.println(result);

book.close();

}catch(Exception e)
{
System.out.println(e);
}
}
}

程序執行結果:test

四、修改文件

利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的時候,除了打開文件的方式不同之外,其他操作和創建Excel是一樣的。下面的例子是在我們已經生成的Excel文件中添加一個工作表:

//修改Excel的類,添加一個工作表
import java.io.*;
import jxl.*;
import jxl.write.*;

public class UpdateXLS
{
public static void main(String args[])
{
try
{
//Excel獲得文件
Workbook wb=Workbook.getWorkbook(new File(「測試.xls」));

//打開一個文件的副本,並且指定數據寫回到原文件
WritableWorkbook book=
Workbook.createWorkbook(new File(「測試.xls」),wb);

//添加一個工作表
WritableSheet sheet=book.createSheet(「第二頁」,1);

sheet.addCell(new Label(0,0,」第二頁的測試數據」));

book.write();
book.close();
}catch(Exception e)
{
System.out.println(e);
}
}
}

執行結果如圖:

高級操作

一、 數據格式化

在Excel中不涉及復雜的數據類型,能夠比較好的處理字串、數字和日期已經能夠滿足一般的應用。

1、 字串格式化

字元串的格式化涉及到的是字體、粗細、字型大小等元素,這些功能主要由WritableFont和WritableCellFormat類來負責。假設我們在生成一個含有字串的單元格時,使用如下語句,為方便敘述,我們為每一行命令加了編號:

WritableFont font1=
new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); ①

WritableCellFormat format1=new WritableCellFormat(font1); ②

Label label=new Label(0,0,」data 4 test」,format1) ③

其中①指定了字串格式:字體為TIMES,字型大小16,加粗顯示。WritableFont有非常豐富的構造子,供不同情況下使用,jExcelAPI的java-doc中有詳細列表,這里不再列出。

②處代碼使用了WritableCellFormat類,這個類非常重要,通過它可以指定單元格的各種屬性,後面的單元格格式化中會有更多描述。

③處使用了Label類的構造子,指定了字串被賦予那種格式。

在WritableCellFormat類中,還有一個很重要的方法是指定數據的對齊方式,比如針對我們上面的實例,可以指定:

//把水平對齊方式指定為居中
format1.setAlignment(jxl.format.Alignment.CENTRE);

//把垂直對齊方式指定為居中
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、單元格操作

Excel中很重要的一部分是對單元格的操作,比如行高、列寬、單元格合並等,所幸jExcelAPI提供了這些支持。這些操作相對比較簡單,下面只介紹一下相關的API。

1、 合並單元格

WritableSheet.mergeCells(int m,int n,int p,int q);

作用是從(m,n)到(p,q)的單元格全部合並,比如:
WritableSheet sheet=book.createSheet(「第一頁」,0);

//合並第一列第一行到第六列第一行的所有單元格
sheet.mergeCells(0,0,5,0);

合並既可以是橫向的,也可以是縱向的。合並後的單元格不能再次進行合並,否則會觸發異常。

2、 行高和列寬

WritableSheet.setRowView(int i,int height);

作用是指定第i+1行的高度,比如:

//將第一行的高度設為200
sheet.setRowView(0,200); 能夠獲取到java裡面那麼再封裝保存進資料庫也就簡單了,希望這樣可以幫到你。

Ⅳ java上傳excel無法兼容ie11和chrome

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<title>批量錄入excel表格</title>
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
</head>
<scripttype="text/javascript">
//FX獲取文件路徑方法
functionreadFileFirefox(fileBrowser){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e){
alert('無法訪問本地文件,由於瀏覽器安全設置,請用IE瀏覽器打開。');
return;
}
varfileName=fileBrowser.value;//這一步就能得到客戶端完整路徑。下面的是否判斷的太復雜,還有下面得到ie的也很復雜。
varfile=Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try{
file.initWithPath(fileName.replace(///g,"\\"));
}
catch(e){
if(e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH)throwe;
alert("File'"+fileName+"'cannotbeloaded:relativepathsarenotallowed..");
return;
}
if(file.exists()==false){
alert("File'"+fileName+"'notfound.");
return;
}

returnfile.path;
}

//根據不同瀏覽器獲取路徑
functiongetvl(){
//判斷瀏覽器
varSys={};
varua=navigator.userAgent.toLowerCase();
vars;
(s=ua.match(/msie([d.]+)/))?Sys.ie=s[1]:
(s=ua.match(/firefox/([d.]+)/))?Sys.firefox=s[1]:
(s=ua.match(/chrome/([d.]+)/))?Sys.chrome=s[1]:
(s=ua.match(/opera.([d.]+)/))?Sys.opera=s[1]:
(s=ua.match(/version/([d.]+).*safari/))?Sys.safari=s[1]:0;
varfile_url="";
if(Sys.ie<="6.0"){
file_url=document.getElementById("file").value;
}elseif(Sys.ie>="7.0"){
varfile=document.getElementById("file");
file.select();
file_url=document.selection.createRange().text;
}elseif(Sys.firefox){
file_url=readFileFirefox(document.getElementById("file"));
}
document.getElementById("filepath").value=file_url.replace(/\/g,'/');//把轉化成/
varfiles=document.getElementById("filepath").value

if(files.substr(files.length-4)=="xlsx"||files.substr(files.length-4)==".xls"){
document.frm.action="import_result.jsp";
document.frm.submit();
}else{
alert("請選擇office2007或office2003;以xlsx(xls)結尾...");
returnfalse;
}

}
</script>
<formaction=""method="post"name="frm"onsubmit="getvl();"target="import_result">
數據的批量導入:<inputtype="file"id="file"style="height:4%"/>
<inputtype="hidden"id="filepath"name="filepath"value=""/>
<inputtype="button"onclick="getvl();"value="Excel導入"style="height:4%"/>
</form>
</html>

Ⅵ Linux下Java上傳Excel文件問題求解

錯誤中顯示是ImportService.import1裡面的地方出錯,而貼上來的代碼是另一個方法的。。。。。。。。調試不了。

Ⅶ java上傳xls文件到伺服器後打開提示發現不可讀取的內容

頁面jsp文件
<form name="add" action="/gxtWeb/lvjcontacts/manyContacts.action" method="post"enctype="multipart/form-data" onsubmit="return checkNull();">
<s:file name="upload"></s:file>
<input type="submit" value="導入信息" >
</form>
action處理:
public class ManyContactsAction extends ActionSupport {
private File upload;
private String uploadContentType;// 要上傳的文件的類型
private String uploadFileName;// 要上傳的文件
private ContactsManager manager;
private Contacts cbean;
private Persons pbean;
private Long gid;
private String result;
public String execute() throws Exception {
// 檢查後綴名是否符合條件,同時更改上傳文件的文件名
int filesize = this.getUploadFileName().length();
String fileEx = this.getUploadFileName().substring(
this.getUploadFileName().indexOf("."), filesize);
//獲取文件名
String fileName=uploadFileName.substring(0,uploadFileName.indexOf("."));
// 獲得上傳路徑
String realPath = ServletActionContext.getServletContext().getRealPath(
"/UploadFile/");
File saveFile=null;
if (upload != null) {
// 修改文件名,使上傳後不至於重復替代
// this.uploadFileName = new Date().getTime() + fileEx;
saveFile = new File(new File(realPath), uploadFileName);
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}

FileUtils.File(upload, saveFile);// 到這里,文件已上傳成功
// 下面進行判斷文件是否是rar文件,是就需要解壓
if (fileEx.equals(".rar")) {
System.out.println("saveFile:" + saveFile);//rar文件所在保存路徑
System.out.println("realPath:" + realPath);//解壓後保存路徑
// 定義解壓字元串,用於解壓上傳的rar文件,注意此處需要一個unrar.exe文件
String rarpath = ServletActionContext.getServletContext()
.getRealPath("/rarFile/UNRAR.exe x -t -o+ -p- \"");
String jieya = rarpath + saveFile + "\" \"" + realPath + "\"";
Process p1 = Runtime.getRuntime().exec(jieya);// 將傳輸的rar文件解壓
p1.waitFor();
p1.destroy();
FileUtils.deleteQuietly(saveFile);// 刪除rar文件
saveFile=new File(new File(realPath),fileName+".xls");
System.out.println("解壓後:"+saveFile);
ServletActionContext.getResponse().getWriter().println(
"success!!");
}
if (fileEx.equals(".xls") || fileEx.equals(".xlsx")) {
// 開始讀取文件了,獲得第一列手機號碼
Workbook persons = Workbook.getWorkbook(saveFile);// 獲得xls文件
Sheet sheet = persons.getSheet(0);// 獲得第一個工作簿
System.out.println("列數:" + sheet.getColumns());
int count = sheet.getRows();// 取得記錄數,count行
String cphone;
// 遍歷行,獲得列數據
for (int i = 0; i < count; i++) {
cphone = sheet.getCell(0, i).getContents();// 第一列的所有行
pbean = manager.getPerson(cphone);// 獲得該用戶,查詢別的信息
cbean = new Contacts();
Long contactsid = pbean.getId();
Long pid = 10002L;
cbean.setContactsid(contactsid);// 聯系人id
cbean.setPid(pid);// 用戶本身的PID
cbean.setCid("cid");// 關系的學校ID
cbean.setGid(gid);// 分組id
manager.addPerson(cbean);
this.contactsLog.writeLog("10002", "批量添加聯系人", "批量添加聯系人操作","");
System.out.println("添加成功!");
}
}
return SUCCESS;
} else {
return INPUT;
}
}
}

xml配置:
<action name="manyContacts" class="manyContactAction">
<result name="success" type="redirectAction">personInfo.action
</result>
<result name="input" type="redirectAction">showmangpersons.action
</result>
</action>
注意:在文件解壓時,需要一個unrar.exe文件,這個文件應保存在工程相應的目錄下,我就放在webapps裡面了,
按照上面的路徑即可獲得解壓文件並進行解壓。
這里配置文件沒寫任何限制,攔截器之類,都在action裡面進行判斷了,這里只做了類型判斷,沒有別的。
[java] view plain
頁面jsp文件
<form name="add" action="/gxtWeb/lvjcontacts/manyContacts.action" method="post" enctype="multipart/form-data" onsubmit="return checkNull();">
<s:file name="upload"></s:file>
<input type="submit" value="導入信息" >
</form>
action處理:
public class ManyContactsAction extends ActionSupport {
private File upload;
private String uploadContentType;// 要上傳的文件的類型
private String uploadFileName;// 要上傳的文件
private ContactsManager manager;
private Contacts cbean;
private Persons pbean;
private Long gid;
private String result;
public String execute() throws Exception {
// 檢查後綴名是否符合條件,同時更改上傳文件的文件名
int filesize = this.getUploadFileName().length();
String fileEx = this.getUploadFileName().substring(
this.getUploadFileName().indexOf("."), filesize);
//獲取文件名
String fileName=uploadFileName.substring(0,uploadFileName.indexOf("."));
// 獲得上傳路徑
String realPath = ServletActionContext.getServletContext().getRealPath(
"/UploadFile/");
File saveFile=null;
if (upload != null) {
// 修改文件名,使上傳後不至於重復替代
// this.uploadFileName = new Date().getTime() + fileEx;
saveFile = new File(new File(realPath), uploadFileName);
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}

FileUtils.File(upload, saveFile);// 到這里,文件已上傳成功
// 下面進行判斷文件是否是rar文件,是就需要解壓
if (fileEx.equals(".rar")) {
System.out.println("saveFile:" + saveFile);//rar文件所在保存路徑
System.out.println("realPath:" + realPath);//解壓後保存路徑
// 定義解壓字元串,用於解壓上傳的rar文件,注意此處需要一個unrar.exe文件
String rarpath = ServletActionContext.getServletContext()
.getRealPath("/rarFile/UNRAR.exe x -t -o+ -p- \"");
String jieya = rarpath + saveFile + "\" \"" + realPath + "\"";
Process p1 = Runtime.getRuntime().exec(jieya);// 將傳輸的rar文件解壓
p1.waitFor();
p1.destroy();
FileUtils.deleteQuietly(saveFile);// 刪除rar文件
saveFile=new File(new File(realPath),fileName+".xls");
System.out.println("解壓後:"+saveFile);
ServletActionContext.getResponse().getWriter().println(
"success!!");
}
if (fileEx.equals(".xls") || fileEx.equals(".xlsx")) {
// 開始讀取文件了,獲得第一列手機號碼
Workbook persons = Workbook.getWorkbook(saveFile);// 獲得xls文件
Sheet sheet = persons.getSheet(0);// 獲得第一個工作簿
System.out.println("列數:" + sheet.getColumns());
int count = sheet.getRows();// 取得記錄數,count行
String cphone;
// 遍歷行,獲得列數據
for (int i = 0; i < count; i++) {
cphone = sheet.getCell(0, i).getContents();// 第一列的所有行
pbean = manager.getPerson(cphone);// 獲得該用戶,查詢別的信息
cbean = new Contacts();
Long contactsid = pbean.getId();
Long pid = 10002L;
cbean.setContactsid(contactsid);// 聯系人id
cbean.setPid(pid);// 用戶本身的PID
cbean.setCid("cid");// 關系的學校ID
cbean.setGid(gid);// 分組id
manager.addPerson(cbean);
this.contactsLog.writeLog("10002", "批量添加聯系人", "批量添加聯系人操作", "");
System.out.println("添加成功!");
}
}
return SUCCESS;
} else {
return INPUT;
}
}
}

xml配置:
<action name="manyContacts" class="manyContactAction">
<result name="success" type="redirectAction">personInfo.action
</result>
<result name="input" type="redirectAction">showmangpersons.action
</result>
</action>
注意:在文件解壓時,需要一個unrar.exe文件,這個文件應保存在工程相應的目錄下,我就放在webapps裡面了,
按照上面的路徑即可獲得解壓文件並進行解壓。
這里配置文件沒寫任何限制,攔截器之類,都在action裡面進行判斷了,這里只做了類型判斷,沒有別的。

Ⅷ 用java如何實現將excel文件(.xls)從一個伺服器上傳到另一台伺服器

用java如何實現將excel文件(.xls)從一個伺服器上傳到另一台伺服器 和
用java如何實現將文件從一個伺服器上傳到另一台伺服器 有什麼區別嗎?

這兩台伺服器又分別是什麼操作系統?是通過頁面操作傳送,還是後台傳送?

Ⅸ JAVA Excel文件上傳,上傳後的Excel文件打開時報有不可讀取的內容,怎麼回事

這樣接收,當然不行了,,,,,,使用smartupload等接收上傳,或Struts接收上傳的文件

文件上傳,要瀏覽器端編碼的 <form action="UploadServlet" method="post" enctype="multipart/form-data">

Ⅹ java web 怎麼導入excel文件

1.要正確的將Web客戶端的Excel文件導入到伺服器的資料庫中,需要將客戶端的Excel文件上傳到伺服器上。可以使用FileUpload控制項完成。2.Excel文件上傳到伺服器指定的目錄中,這里假設是該站點的upfiles目錄中。3.使用SQL語句從upfiles目錄中的上傳Excel文件中讀取數據顯示或寫入資料庫。

熱點內容
簡便演算法20道 發布:2024-07-02 03:03:38 瀏覽:974
android資源打包jar 發布:2024-07-02 02:39:29 瀏覽:208
長生訣源碼 發布:2024-07-02 02:30:29 瀏覽:290
sql在某一天 發布:2024-07-02 02:16:23 瀏覽:965
剎車編程 發布:2024-07-02 02:02:56 瀏覽:331
訪問的仿組詞 發布:2024-07-02 02:02:54 瀏覽:79
excel以文本形式存儲數字 發布:2024-07-02 01:51:01 瀏覽:312
雲伺服器並聯 發布:2024-07-02 01:40:15 瀏覽:741
如何選工業伺服器 發布:2024-07-02 01:37:34 瀏覽:213
二進制最小的存儲單位位元組 發布:2024-07-02 01:37:31 瀏覽:862