国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

使用C#如何導入導出Excel文件?

瀏覽:195日期:2022-10-15 08:19:47

問題描述

使用C#如何導入導出Excel文件?

問題解答

回答1:

使用C#如何導入導出Excel文件?-PHP中文網問答-使用C#如何導入導出Excel文件?-PHP中文網問答

圍觀一下哦,學習一下。

回答2:

OleDB是微軟的戰略性的通向不同的數據源的低級應用程序接口。支持很多種數據庫,此客戶端中DBF文件的輸入輸出也是使用了此數據庫API。使用OleDB記得添加上命名空間:

using System.Data.OleDb;

xlsx文件的輸入:

private void inputXlsx(){ string strConn2; string filePath = inPath; FileInfo fileInfo = new FileInfo(filePath); string directory = fileInfo.DirectoryName; strConn2 = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source='{0}'; Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;';"; string strConnection = string.Format(strConn2, inPath); OleDbConnection conn = new OleDbConnection(strConnection); try {conn.Open();String tableName = null;DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);tableName = dt.Rows[0][2].ToString().Trim();OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + tableName + "]", strConnection);oada.Fill(dtOld);conn.Close(); } catch (Exception ex) {conn.Close(); }}

xlsx文件的中間處理過程因需求而異,在此不再贅述處理方式。在輸入過程中,將文件中的數據轉化成了Datatable數據類型的格式,它是一個臨時保存數據的網格虛擬表,處理非常方便。

xlsx文件的輸出:xlsx文件的輸出過程并不是很順利,先后使用了三種方式。

第一種方式自然就是OleDB了,有始有終嘛。但是真正使用的過程中發現此方式不僅要求程序運行本機必須安裝Excel,而且對Excel版本要求非常高,如果刪注冊表很容易弄巧成拙,我改注冊表就直接玩壞了Excel。事實上我們并不能保證客戶的機器上一定安裝了對應版本的Excel,所以如果使用OleDB輸出文件,此客戶端的兼容性將非常的低劣。

經過一番溝通和掙扎決定還是換一種方式,決定改用第三方組件。由于JAVA方使用的是POI,所以這邊直接使用POI項目的.NET版本,NPOI。網上教程很多,很好實現,但是經過測試之后,此種方式對大文件的輸入輸出支持的不是很好,處理DEMO文件沒有問題,但是換成了真正客戶提供的十萬行級甚至百萬行級的文件,客戶端直接在輸出的過程中崩掉。

查詢資料后,網友們對于大文件都建議使用EPPlus。教程也是一抓一大把,我沒有繼續加大文件大小測試,不過客戶給我們提供的十來個文件全部測試通過,基本上都是百萬級以下的。

上代碼吧:

private void outputXlsx(){ FileInfo newFile = new FileInfo(dtNew.TableName + ".xlsx"); if (newFile.Exists) {newFile.Delete();newFile = new FileInfo(dtNew.TableName + ".xlsx"); } using (ExcelPackage package = new ExcelPackage(newFile)) {ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(dtNew.TableName);//創建worksheet for (int m = 0; m < dtNew.Columns.Count; m++){ worksheet.Cells[1, m + 1].Value = dtNew.Columns[m];}int i = 1;foreach (DataRow dr in dtNew.Rows){ for (int j = 0; j < dtNew.Columns.Count; j++) {worksheet.Cells[i + 1, j + 1].Value = dr[j]; } i++;}package.Save();//保存excel }}

標簽: excel
相關文章:
主站蜘蛛池模板: 亚洲综合精品一区二区三区中文 | 亚洲精品一区二区三区在线看 | 日韩免费精品一级毛片 | 香蕉久久夜色精品国产2020 | 久草在线观看首页 | 欧美日韩一区二区视频免费看 | 欧美美女色 | 日韩不卡一级毛片免费 | 99精品久久久久久久免费看蜜月 | a毛片免费播放全部完整 | 欧美一级特黄一片免费 | 精品一久久 | 欧美色成人综合 | 欧美一级一毛片 | 毛片观看网站 | 艹美女视频| 偷自拍| 国产男人天堂 | 亚洲第一影院 | 欧美成人免费午夜全 | 中文国产成人精品久久无广告 | 成人三级在线 | 欧美 亚洲 中文字幕 | 欧美特级一级毛片 | 自拍三级视频 | 91成人在线视频 | 乱人伦中文视频在线 | 亚洲综合一二三区 | 日韩一级片| 美女张开双腿让男人桶视频免费 | 女人张开腿让男人捅爽 | 亚洲国产欧美在线人成 | 久久精品成人欧美大片免费 | 国产亚洲精品日韩已满十八 | 国产一区二区在线观看视频 | 国产精品美女免费视频大全 | 久久精品二区 | 国产ssss在线观看极品 | 国产草草影院ccyycom软件 | av在线亚洲男人的天堂 | 久久伊人成人网 |