C 各種匯入Excel檔案的資料的方法總結

2021-10-01 17:04:26 字數 3277 閱讀 5006

在匯入前都需要將上傳的檔案儲存到伺服器,所以避免重複的寫這些**,先貼出上傳檔案並儲存到伺服器指定路徑的**

protected

void

btnimport_click

(object sender,

eventargs e)

}catch

(exception ex)

}

第一種:

public

dataset

importexcel

(string filepath)

catch

//獲取所有的 sheet 表

datatable dtsheetname = conn.

getoledbschematable

(oledbschemaguid.tables,

newobject

);ds =

newdataset()

;for

(int i =

0; i < dtsheetname.rows.count; i++

)//關閉連線,釋放資源

conn.

close()

; conn.

dispose()

;return ds;

}

除了讀取過程不太靈活之外,這種讀取方式還有個弊端就是,當excel資料量很大時,會非常占用記憶體,當記憶體不夠時會丟擲記憶體溢位的異常,不過一般的都適用了。

第二種:microsoft.office.interop.excel.dll

public

dataset

importexcel

(string filepath)

//開啟excel檔案

workbook=excel.workbooks.

open

(filepath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)

;//獲取所有的sheet表

sheets=workbook.worksheets;

ds=new

dataset()

;for

(int i=

1;i<=sheets.count;i++

)//讀取行資料

for(

int k=

1;k)dt.tables.

add(dt);}

}catch

(exception ex)

finally

return ds;

}

這種方法首先需要安裝有office excel,並且是乙個單元格乙個單元格的讀取,所以效能會比較差

第三種:npoi

public

dataset

importexcel

(string filepath)

//跳過第一行列名

rowindex++

;for

(int k=rowindex;k<=rowcount;k++

) dr[l]

=row.

getcell

(l).stringcellvalue;

} dt.rows.

add(dr);}

ds.tables.

add(dt);}

sheet=

null

; workbook=

null

; filestream.

close()

; filestream.

dispose()

;}catch

(exception ex)

return ds;

}

我這裡用的是.xlsx格式的,也就是excel2007及以上版本,2003版本的話方法類似,只是開啟檔案的操作類不一樣

//2007及以上版本

xssfworkbook xworkbook=new xssfworkbook(filestream);

//2003版本

hssfworkbook hworkbook=new hssfworkbook(filestream);

第四種:aspose.cells.dll

public

dataset

importexcel

(string filepath)

worksheets.

clear()

; worksheet=

null

; worksheets=

null

; workbokk=

null;}

catch

(exception ex)

return ds;

}

這種方法操作比較方便,跟oledb一樣直接獲取乙個sheet表的資料,不用乙個單元格乙個單元格的獲取。而且操作也比較靈活,你可以一行一行的獲取資料,甚至乙個單元格乙個單元格的獲取資料

第五種:epplus

public

dataset

importexcel

(string filepath)

rowindex++

;for

(int k=rowindex;k<=rowcount;k++

) dr[l-1]

=worksheet.

getvalue

(k,l)

.tostring()

;}ds.tables.

add(dt);}

package.

dispose()

; worksheet=

null

; worksheets=

null

; package=

null

; filestream.

close()

; filestream.

dispose()

;}catch

(exception ex)

return ds;

}

這種方法讀取excel資料效能還不錯,但是要注意的是,sheet、row、col的起始值都是從1開始的

C 匯入Excel檔案,並用repreater顯示

後台 匯入要通知的員工 protected void btnload click object sender,eventargs e else 讀取excel資料到dataset excel的絕對路徑 excel名稱 表名 excel.worksheet xsheet excel.worksheet...

ajax上傳excel檔案匯入資料

一直以來上傳檔案都是用form表單來上傳的,在專案中也有過ajax非同步無重新整理的上傳檔案,因為記錄下來ajax如何檔案。本次上傳檔案是用jsp作為前台介面,servlet為後台,沒有使用框架處理,上傳檔案用的ajaxfileupload.js封裝的工具類 上傳檔案需要commons fileup...

Excel資料匯入

excel資料匯入 你hold住麼 一 在本篇將帶領大家一同了解 匯入excel流程和問題解決方案 需要注意的是在server端的web config 中新增這幾行 ps 中value 是根據自己的專案中的資料夾的命名而定,可參考以下截圖 由於在server的配置檔案的檔名不一致。找不excel的x...