公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

WinForm 實現打開并導入 Excel 文件讀取功能

admin
2025年2月8日 0:32 本文熱度 1063

一、引言

在 Windows 桌面應用開發中,WinForm 是一種常見且強大的技術。而在許多業務場景下,需要從 Excel 文件中讀取數據,例如數據分析、數據導入等。本文將詳細介紹如何在 WinForm 應用程序中實現打開并導入 Excel 文件,以及讀取其中的數據。

二、實現思路

要在 WinForm 中實現打開并讀取 Excel 文件,主要步驟如下:

  1. 提供文件選擇界面:使用 OpenFileDialog 控件讓用戶選擇要打開的 Excel 文件。
  2. 選擇合適的庫讀取 Excel:這里我們使用 Microsoft.Office.Interop.Excel 或 EPPlus 庫,Microsoft.Office.Interop.Excel 需要安裝 Microsoft Office,而 EPPlus 是一個開源庫,無需安裝 Office。本文將分別介紹這兩種方法。
  3. 讀取 Excel 文件內容:將 Excel 文件中的數據讀取出來,并在界面上顯示或進行后續處理。

三、使用 Microsoft.Office.Interop.Excel 實現

1. 創建 WinForm 項目

打開 Visual Studio,創建一個新的 C# WinForm 應用程序項目。

2. 添加引用

在項目中添加對 Microsoft.Office.Interop.Excel 的引用。可以通過“項目” -> “添加引用” -> “COM”,找到“Microsoft Excel XX.0 Object Library”(XX 為 Office 版本號)并添加。

3. 設計界面

在窗體上添加一個 Button 控件用于觸發文件選擇對話框,添加一個 DataGridView 控件用于顯示讀取的數據。

4. 編寫代碼

using System;
using System.Data;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExcelImportWinForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Excel Files|*.xls;*.xlsx";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filePath = openFileDialog.FileName;
                DataTable dataTable = ReadExcelWithInterop(filePath);
                dataGridView1.DataSource = dataTable;
            }
        }

        private DataTable ReadExcelWithInterop(string filePath)
        {
            DataTable dataTable = new DataTable();
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook workbook = excelApp.Workbooks.Open(filePath);
            Excel.Worksheet worksheet = workbook.Sheets[1];
            Excel.Range range = worksheet.UsedRange;

            // 添加列
            for (int col = 1; col <= range.Columns.Count; col++)
            {
                dataTable.Columns.Add(range.Cells[1, col].Value2.ToString());
            }

            // 添加行
            for (int row = 2; row <= range.Rows.Count; row++)
            {
                DataRow dataRow = dataTable.NewRow();
                for (int col = 1; col <= range.Columns.Count; col++)
                {
                    dataRow[col - 1] = range.Cells[row, col].Value2;
                }
                dataTable.Rows.Add(dataRow);
            }

            workbook.Close(false);
            excelApp.Quit();
            return dataTable;
        }
    }
}

5. 代碼解釋

  • 文件選擇:使用 OpenFileDialog 讓用戶選擇 Excel 文件。
  • 讀取 Excel:通過 Microsoft.Office.Interop.Excel 打開 Excel 文件,獲取工作表和使用范圍。
  • 數據處理:將 Excel 中的數據逐行逐列讀取到 DataTable 中,最后將 DataTable 綁定到 DataGridView 上顯示。

四、使用 EPPlus 實現

1. 安裝 EPPlus 庫

通過 NuGet 包管理器搜索 EPPlus 并安裝到項目中。

2. 編寫代碼

using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
using OfficeOpenXml;

namespace ExcelImportWinForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Excel Files|*.xls;*.xlsx";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filePath = openFileDialog.FileName;
                DataTable dataTable = ReadExcelWithEPPlus(filePath);
                dataGridView1.DataSource = dataTable;
            }
        }

        private DataTable ReadExcelWithEPPlus(string filePath)
        {
            DataTable dataTable = new DataTable();
            using (ExcelPackage package = new ExcelPackage(new FileInfo(filePath)))
            {
                ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
                if (worksheet.Dimension != null)
                {
                    // 添加列
                    for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
                    {
                        dataTable.Columns.Add(worksheet.Cells[1, col].Value?.ToString());
                    }

                    // 添加行
                    for (int row = 2; row <= worksheet.Dimension.End.Row; row++)
                    {
                        DataRow dataRow = dataTable.NewRow();
                        for (int col = 1; col <= worksheet.Dimension.End.Column; col++)
                        {
                            dataRow[col - 1] = worksheet.Cells[row, col].Value;
                        }
                        dataTable.Rows.Add(dataRow);
                    }
                }
            }
            return dataTable;
        }
    }
}

3. 代碼解釋

  • 文件選擇:同樣使用 OpenFileDialog 讓用戶選擇 Excel 文件。
  • 讀取 Excel:使用 EPPlus 打開 Excel 文件,獲取工作表和單元格范圍。
  • 數據處理:將 Excel 中的數據逐行逐列讀取到 DataTable 中,最后將 DataTable 綁定到 DataGridView 上顯示。

五、兩種方法對比

  • **Microsoft.Office.Interop.Excel**:優點是功能強大,能直接調用 Excel 的各種功能;缺點是需要安裝 Microsoft Office,部署環境受限,且性能相對較低。
  • **EPPlus**:優點是開源、無需安裝 Office,性能較好,部署方便;缺點是功能相對 Microsoft.Office.Interop.Excel 可能不夠全面。

六、總結

通過以上兩種方法,我們可以在 WinForm 應用程序中實現打開并導入 Excel 文件,讀取其中的數據。開發者可以根據實際需求和部署環境選擇合適的方法。無論是使用 Microsoft.Office.Interop.Excel 還是 EPPlus,都能滿足基本的 Excel 數據讀取需求,為后續的數據處理和分析提供基礎。


閱讀原文:原文鏈接


該文章在 2025/2/8 10:20:47 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产精品无码一区二区久日韩亚 | 国产盗摄视频一区二区 | 国产精品一区91 | 91国语精品自产拍在线观看一 | 国产美女爽到喷出水来视频 | 国产一区中文字幕 | 国产精品高清网站 | 精品一区二区三区波多野结衣 | 国产成人愉拍精品 | 精品国产天堂综合一区在线 | 国产va在线在线观看视频 | 国产成人5g影院无码网站 | 国产免费69成人精品视频 | 高清不卡一区二区 | 91麻精品国产91久久久久 | 国产97精品一区二区三区四区 | 国产成人无码免费精品果冻传媒 | 国产成人精品午夜在线播放 | 91在线无码 | 91探花在线播放 | 国产精品国产高清国产专区 | 国产麻豆精品白丝久久av网站 | 国产精品无码专区第1页 | a级毛片高清免费视频就看 a级毛片高清免费视频在线 | 国产盗摄久久久精品 | 国产精品嫩草影院av | 国产绿帽在线视频看 | 国产精品偷窥熟女精品视频 | 国产成人毛片精品不卡在线 | 精品无码国产自产在线观看老师 | 国产成人精品在线免费观看 | 国产制服丝袜欧美在线观看 | 国产午夜福利精品一区二区三区 | 97无码免费人妻超级碰碰夜夜 | 91性高湖久久久久久久久 | 精品久久久久久无码专区不卡 | 国产精品欧美亚洲韩国日本 | 精品国产午夜福利在线观看 | 国产成年人精彩视频 | 国产精品兄妹伦理片一区二区 | 国产一区二区三区乱码 |