Excel的創建和讀取NPOI

来源:https://www.cnblogs.com/zhao123/archive/2019/06/20/11056808.html
-Advertisement-
Play Games

一個.NET庫,可以讀取/寫入沒有安裝Microsoft Office的Office格式。沒有COM +,沒有互操作。 ...


一個.NET庫,可以讀取/寫入沒有安裝Microsoft Office的Office格式。沒有COM +,沒有互操作。

public class ExcelNpoiTest
{
    /// <summary>
    /// NPOI基礎的Excel創建
    /// </summary>
    public static void CreateExcel()
    {
        //創建工作薄
        HSSFWorkbook wk = new HSSFWorkbook();
        //創建一個名稱為mySheet的表
        ISheet tb = wk.CreateSheet("mySheet");
        for (int i = 0; i < 20; i++)
        {
            //創建行
            IRow row = tb.CreateRow(i);
            for (int j = 0; j < 20; j++)
            {
                //創建列
                ICell cell = row.CreateCell(j);
                //賦值
                cell.SetCellValue($"[{i},{j}]");
            }
        }
        //打開一個現有文件或創建一個新文件以進行寫入。
        using (FileStream fs = File.OpenWrite(@"D:\myxls.xls"))
        {
            //向打開的這個xls文件中寫入mySheet表並保存。
            wk.Write(fs);
        }
    }

    /// <summary>
    /// NPOI基礎的Excel讀取
    /// </summary>
    public static void ReadExcel()
    {
        //打開現有文件以進行讀取。
        using (FileStream fs = File.OpenRead(@"D:\myxls.xls"))
        {
            //把文件寫入wk中
            HSSFWorkbook wk = new HSSFWorkbook(fs);
            for (int i = 0; i < wk.NumberOfSheets; i++)
            {
                //獲取sheet
                ISheet sheet = wk.GetSheetAt(i);
                for (int j = 0; j < sheet.LastRowNum; j++)
                {
                    //獲取行
                    IRow row = sheet.GetRow(j);
                    if (row != null)
                    {
                        for (int k = 0; k < row.LastCellNum; k++)
                        {
                            //獲取列
                            ICell cell = row.GetCell(k);
                            if (cell != null)
                            {
                                //獲取值
                                Console.Write(cell.ToString());
                            }
                        }
                    }
                    Console.WriteLine();
                }
            }
        }
    }


}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Github https://github.com/gongluck/SDL2 study/tree/master/Csdl2 Csdl2.h Csdl2.cpp 測試 C++ include "Csdl2.h" include include include define TESTCHECKRET ...
  • 讓我們考慮一個簡單的編程挑戰:對大數組中的所有元素求和。現在可以通過使用並行性來輕鬆優化這一點,特別是對於具有數千或數百萬個元素的巨大陣列,還有理由認為,並行處理時間應該與常規時間除以CPU核心數一樣多。事實證明,這一壯舉並不容易實現。我將向您展示幾種並行執行此操作的方法,它們如何改善或降低性能以及 ...
  • 在前面兩篇隨筆《ABP開發框架前後端開發系列---(7)系統審計日誌和登錄日誌的管理》和《ABP開發框架前後端開發系列---(8)ABP框架之Winform界面的開發過程》開始介紹了許可權管理的內容,其中只是列出了內部的許可權系統的審計和登陸信息,以及對Winform界面的整合,本篇隨筆繼續介紹ABP開... ...
  • 軟體開發中最常用的模式之一是緩存,這是一個簡單但非常有效的概念,想法是重用操作結果,執行繁重的操作時,我們會將結果保存在緩存容器中,下次我們需要該結果時,我們將從緩存容器中取出它,而不是再次執行繁重的操作。 例如,要獲得某人的頭像,您可能需要前往資料庫。我們不會每次都執行那次查詢,而是將結果保存在緩 ...
  • 在上一篇文章中學習了ABP的倉儲(Repository)功能,Repository對資料庫進行增刪改查操作。在這一篇文章中我們主要瞭解應用服務層。 應用服務用於將領域(業務)邏輯暴露給展現層。展現層通過傳入DTO(數據傳輸對象)參數來調用應用服務,而應用服務通過領域對象來執行相應的業務邏輯並且將DT... ...
  • 微軟從C#1.0的委托,到C#2.0的匿名方法,再到C#3.0的Lambda表達式,一步步升級,帶給我們的是代碼上的優美,簡潔,可讀性強。Lambda 表達式廣泛用於編寫LINQ查詢表達式等方面。本文全面的介紹了Lambda 表達式的概念、由來及使用方法。 ...
  • 使用Process.Start(new ProcessStartInfo(url))來打開某一網址的時候,往往會被360提示 類似這樣的 信息: “威脅:修改此註冊表項將更改IE連接設置。少數軟體會修改此項,如果隨意修改,可能造成無法上網。如果您不認識此程式,請阻止。” 這是由於 360 會判斷啟動 ...
  • 為了體驗.net在linux上運行,所以使用HttpClient東借西抄做了一個簡單的api上傳功能。 第一步,簡單的上傳功能: 然後自己再寫一個api程式做為服務端用來接收請求,如下代碼: api程式記得修改Program.cs 當時我訪問出現502就是因為這個原因 然後本地測試可以之後再將api ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...