java怎麼讀取上傳的excel文件,解決辦法:
添加jar文件,java導入導出Excel文件要引入jxl.jar包,最關鍵的是這套API是純Java的,並不依賴Windows系統,即使運行在Linux下,它同樣能夠正確的處理Excel文件。
jxl對Excel表格的認識,每個單元格的位置認為是由一個二維坐標(i,j)給定,其中i表示列,j表示行,並且從上到下遞增,從左到右遞增。
對於合並單元格的以最左,最上的單元格的坐標為准。如下圖中t.xls,一班名單(0,0),陳茵(1,2),陳開先(1,6)。
4.java代碼對t.xls的讀取
Ⅱ java代碼怎麼判斷文件的格式是excel文件
匹配後綴名。
用
String.endsWith(".xls");
xls
xlsx
xlsm
1.兩點需要注意
1.string.spilt("\.")分割字元串成子字元串數組,以「.」分割,必須版寫成string.spilt("\.")的方式權,不能寫成string.spilt(".")。斜線必須是反斜線且。
2.獲取分割後的字元串數組,要獲得最後一個item的index ,方式是int suffixIndex = strArray.length -1;
publicStringgetFileType(StringfileName){
String[]strArray=fileName.split("\.");
intsuffixIndex=strArray.length-1;
System.out.println(strArray[suffixIndex]);
return"strArray[suffixIndex]";
}
Ⅲ java 怎麼判斷一個文件的類型,比如說是txt,jpg,xls,exe,等等,說後綴名的就不用回答了
二進制與二進制本身沒什麼區別,區別在於文件結構,常見的圖片、xls等等都是有相對固定的文件結構的,比如說總是以哪幾個位元組開始,後面跟的是什麼數據,數據有多長等等。要判斷文件類型,一般常用的方法是也是基於這個原理,通過文件前面的固定位元組來判斷,java也不例外,網路搜索一下 java 文件 類型 判斷,第一個就是。
Ⅳ 正則表達式,如何判斷文件名後綴是否為csv、xls、xlsx
<input type="file" value="瀏覽" id="file" onchange=" " onclick=" "/>
在input中想要獲取上傳的文件名,那麼onclick事件是不行的,因為一點擊input那麼onclick事件就執行,但是這時候還沒上傳內容,但是onchange事件是上傳完成後才執行的事件
以下方法就是判斷是否是excel文件
var File=document.getElementById(「file」);
var str=File.value;
1、查找字元串
if(str.indexOf("xls")<0&&str.indexOf("xlsx")<0)
{
alert("請選擇格式為.xls或.xlsx的文件!");
return false;
}
2、正則表達式:
var reg = /(?:jpg|gif|png|jpeg)$/;
reg.test(obj.value)
文件格式(或文件類型)是指電腦為了存儲信息而使用的對信息的特殊編碼方式,是用於識別內部儲存的資料。比如有的儲存圖片,有的儲存程序,有的儲存文字信息。每一類信息,都可以一種或多種文件格式保存在電腦存儲中。
每一種文件格式通常會有一種或多種擴展名可以用來識別,但也可能沒有擴展名。擴展名可以幫助應用程序識別的文件格式。對於硬碟機或任何電腦存儲來說,有效的信息只有0和1兩種。所以電腦必須設計有相應的方式進行信息-位元的轉換。對於不同的信息有不同的存儲格式。
Ⅳ java 文件上傳:這是網頁上的jsp頁面,想要實現選擇一個cvs格式的文件上傳。
前台可以通過JS過濾文件類型,如果是CSV,允許上傳,如果不是,給出提示。專
後台先上傳文件,屬如果成功,記錄成功數量,失敗記錄失敗數量。(這里記住要先上傳在解析,
外在因素可能導致多種失敗的情況。)
具體信息可以讓他下載後查看。如果想在頁面上查看,需要瀏覽器支持瀏覽CSV文件。(這種方式不好)另外可以解析CSV將文件內容存在資料庫後在頁面展示。根據你的需求決定實現方式吧
Ⅵ Java中上傳文件和表單數據提交如何質蕕
//1.form表單
//註:上傳文件的表單,需要將form標簽設置enctype="multipart/form-data"屬性,意思是將Content-Type設置成multipart/form-data
<form action="xxx" method="post" enctype="multipart/form-data">
<input type="text" name="name" id="id1" /> <br />
<input type="password" name="password" /> <br />
<input type="file" name="file" value="選擇文件"/> <input id="submit_form" type="submit" value="提交"/>
</form>
//2.servlet實現文件接收的功能
boolean isMultipart = ServletFileUpload.isMultipartContent(request);//判斷是否是表單文件類型
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
List items = sfu.parseRequest(request);//從request得到所有上傳域的列表
for(Iterator iter = items.iterator();iter.hasNext();){
FileItem fileitem =(FileItem) iter.next(); if(!fileitem.isFormField()&&fileitem!=null){
//判讀不是普通表單域即是file
System.out.println("name:"+fileitem.getName());
}
}
3.擴展一下springboot
@RequestMapping("/xxx")
@ResponseBody
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(new File(
file.getOriginalFilename())));
System.out.println(file.getName());
out.write(file.getBytes());
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
return "上傳失敗," + e.getMessage();
} catch (IOException e) {
e.printStackTrace();
return "上傳失敗," + e.getMessage();
}
return "上傳成功";
} else {
return "上傳失敗,因為文件是空的.";
}
}
Ⅶ Java上傳excel,Excel數據或者格式會影響上傳速度,Excel哪些因素會影響上傳速度
如果只是文件上傳,那麼上傳速度只是與文件大小有關,而與裡面的數據是無關的。之所以2000條數據的Excel比3000條數據的Excel上傳還慢,應該是你的上傳過程除了上傳文件,還做了數據解析(讀取Excel)的功能,如果是這樣的話,那麼整個上傳速度還與數據內容有關,雖然數據量小,但數據內容多,解析速度慢,這樣也會導致你說的問題。
如果想解決此問題,可以分步進行,上傳時只上傳文件,後台接收到文件再統一解析處理。這樣既容易查找問題,又可以很好的解耦。
Ⅷ java 傳輸 獲取文件類型
獲取文件類型,一般的是列出目前所有的文件類型,根據表頭進行相應判斷,示例如下:
/**
*件頭是位於文件開頭的一段承擔一定任務的數據,一般都在開頭的部分。
*頭文件作為一種包含功能函數、數據介面聲明的載體文件,用於保存程序的聲明(declaration),而定義文件用於保存程序的實現(implementation)。
*為了解決在用戶上傳文件的時候在伺服器端判斷文件類型的問題,故用獲取文件頭的方式,直接讀取文件的前幾個位元組,來判斷上傳文件是否符合格式。具體代碼如下:
*Java代碼:
*
*/
packagecom.yonyou.sud.file;
importjava.io.FileInputStream;
importjava.io.IOException;
importjava.util.HashMap;
/**
*獲取和判斷文件頭信息
*
*@authorSud
*
*/
publicclassGetTypeByHead{
//緩存文件頭信息-文件頭信息
publicstaticfinalHashMap<String,String>mFileTypes=newHashMap<String,String>();
static{
//images
mFileTypes.put("FFD8FF","jpg");
mFileTypes.put("89504E47","png");
mFileTypes.put("47494638","gif");
mFileTypes.put("49492A00","tif");
mFileTypes.put("424D","bmp");
//
mFileTypes.put("41433130","dwg");//CAD
mFileTypes.put("38425053","psd");
mFileTypes.put("7B5C727466","rtf");//日記本
mFileTypes.put("3C3F786D6C","xml");
mFileTypes.put("68746D6C3E","html");
mFileTypes.put("44656C69766572792D646174653A","eml");//郵件
mFileTypes.put("D0CF11E0","doc");
mFileTypes.put("5374616E64617264204A","mdb");
mFileTypes.put("252150532D41646F6265","ps");
mFileTypes.put("255044462D312E","pdf");
mFileTypes.put("504B0304","docx");
mFileTypes.put("7221","rar");
mFileTypes.put("57415645","wav");
mFileTypes.put("41564920","avi");
mFileTypes.put("2E524D46","rm");
mFileTypes.put("000001BA","mpg");
mFileTypes.put("000001B3","mpg");
mFileTypes.put("6D6F6F76","mov");
mFileTypes.put("3026B2758E66CF11","asf");
mFileTypes.put("4D546864","mid");
mFileTypes.put("1F8B08","gz");
}
/**
*根據文件路徑獲取文件頭信息
*
*@paramfilePath
*文件路徑
*@return文件頭信息
*/
publicstaticStringgetFileType(StringfilePath){
System.out.println(getFileHeader(filePath));
System.out.println(mFileTypes.get(getFileHeader(filePath)));
returnmFileTypes.get(getFileHeader(filePath));
}
/**
*根據文件路徑獲取文件頭信息
*
*@paramfilePath
*文件路徑
*@return文件頭信息
*/
(StringfilePath){
FileInputStreamis=null;
Stringvalue=null;
try{
is=newFileInputStream(filePath);
byte[]b=newbyte[4];
/*intread()從此輸入流中讀取一個數據位元組。
*intread(byte[]b)從此輸入流中將最多b.length個位元組的數據讀入一個byte數組中。
*intread(byte[]b,intoff,intlen)從此輸入流中將最多len個位元組的數據讀入一個byte數組中。
*/
is.read(b,0,b.length);
value=bytesToHexString(b);
}catch(Exceptione){
}finally{
if(null!=is){
try{
is.close();
}catch(IOExceptione){
}
}
}
returnvalue;
}
/**
*將要讀取文件頭信息的文件的byte數組轉換成string類型表示
*
*@paramsrc
*要讀取文件頭信息的文件的byte數組
*@return文件頭信息
*/
(byte[]src){
StringBuilderbuilder=newStringBuilder();
if(src==null||src.length<=0){
returnnull;
}
Stringhv;
for(inti=0;i<src.length;i++){
//以十六進制(基數16)無符號整數形式返回一個整數參數的字元串表示形式,並轉換為大寫
hv=Integer.toHexString(src[i]&0xFF).toUpperCase();
if(hv.length()<2){
builder.append(0);
}
builder.append(hv);
}
System.out.println(builder.toString());
returnbuilder.toString();
}
publicstaticvoidmain(String[]args)throwsException{
finalStringfileType=getFileType("E:/Java編程思想讀書筆記.docx");
System.out.println(fileType);
}
}