操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    前一段時間接了一個小項目,使用C#寫一個客戶端。主要功能就是根據客戶提供的文件標準,按照一定的規則和算法,轉換DBF文件和Excel文件(后綴名xlsx為主)。這個客戶端的功能并不復雜,但是細節很多,前前后后從框架到交付大約用了三周的時間。我先闡述使用C#語言處理Excel文件的一些實踐結論。

    由于我處理的是后綴名為xlsx文件,再次就主講此類文件了。在Excel文件的輸入中,使用的就是度娘一找一大片的OleDB。

    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;
    

    poi導出excel模板導出會覆蓋原有的內同嗎_poi導出excel設置日期格式_poi使用模板導出excel

    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);

    poi導出excel模板導出會覆蓋原有的內同嗎_poi導出excel設置日期格式_poi使用模板導出excel

    oada.Fill(dtOld); conn.Close(); } catch (Exception ex) { conn.Close(); } }

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

    xlsx文件的輸出:xlsx文件的輸出過程并不是很順利poi導出excel模板導出會覆蓋原有的內同嗎,先后使用了三種方式。

    poi導出excel模板導出會覆蓋原有的內同嗎_poi導出excel設置日期格式_poi使用模板導出excel

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

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

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

    上代碼吧:

    private void outputXlsx()
    {
        FileInfo newFile = new FileInfo(dtNew.TableName + ".xlsx");
        if (newFile.Exists)
        {
            newFile.Delete();
    

    poi導出excel模板導出會覆蓋原有的內同嗎_poi使用模板導出excel_poi導出excel設置日期格式

    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]; }

    poi導出excel設置日期格式_poi使用模板導出excel_poi導出excel模板導出會覆蓋原有的內同嗎

    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 } }

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有