C# Excel開發指南

一、Excel文件讀取與寫入

Excel文件是業界廣泛的數據交換格式。在C#開發中,我們可以利用Excel COM對象,來實現對Excel文件的操作,包括讀取和寫入。

首先,我們需要在VS中引入COM對象。在項目中的“引用”中,添加Microsoft Excel 16.0 Object Library。

using Microsoft.Office.Interop.Excel;
using System.IO;

namespace ExcelReadWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建Excel對象
            Application excel = new Application();
            //打開Excel文件
            Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
            //獲取第一個工作表
            Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
            //讀取單元格內容
            string cellContent = worksheet.Cells[1, 1].Value.ToString();
            Console.WriteLine(cellContent);
            //寫入單元格內容
            worksheet.Cells[1, 2] = "Hello World";
            //保存並關閉Excel文件
            workbook.Save();
            workbook.Close();
        }
    }
}

代碼中,我們首先創建了一個Excel對象,然後打開指定路徑下的Excel文件。獲取第一個工作表,並讀取第一個單元格的內容。最後,在第一行第二列寫入內容,並保存修改。

二、Excel圖表處理

Excel圖表是一個非常實用的數據可視化工具。在C#中,我們也可以通過Excel COM對象,來實現對Excel圖表的操作,包括添加、修改、刪除等。

下面的代碼演示了如何在Excel中創建一個圖表,並設置其屬性:

using Microsoft.Office.Interop.Excel;

namespace ExcelCharts
{    
    class Program
    {
        static void Main(string[] args)
        {
            //創建Excel對象
            Application excel = new Application();
            //創建新的Excel文件
            Workbook workbook = excel.Workbooks.Add();
            //獲取第一個工作表
            Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
            //添加數據
            worksheet.Cells[1, 1] = "Month";
            worksheet.Cells[1, 2] = "Sales";

            worksheet.Cells[2, 1] = "Jan";
            worksheet.Cells[2, 2] = "100";

            worksheet.Cells[3, 1] = "Feb";
            worksheet.Cells[3, 2] = "200";

            worksheet.Cells[4, 1] = "Mar";
            worksheet.Cells[4, 2] = "300";

            //添加圖表
            ChartObjects chartObjs = (ChartObjects)worksheet.ChartObjects(Type.Missing);
            ChartObject chartObj = chartObjs.Add(300, 50, 300, 250);
            Chart chart = chartObj.Chart;

            //設置圖表屬性
            chart.ChartType = XlChartType.xlColumnClustered;
            chart.SetSourceData(worksheet.get_Range("A1:B4", Type.Missing), Type.Missing);

            //保存Excel文件
            workbook.SaveAs(@"D:\testChart.xlsx");
            workbook.Close();
        }
    }
}

代碼中,我們首先創建一個Excel對象,然後新建一個Excel文件。添加數據,然後再添加一個圖表,並設置其類型和數據源。最後保存Excel文件。

三、Excel數據操作

Excel作為一個數據交換格式,在實際開發中,經常需要進行數據操作,包括排序、篩選等。

下面的代碼演示了如何對Excel數據進行排序和篩選:

using Microsoft.Office.Interop.Excel;

namespace ExcelDataManipulation
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建Excel對象
            Application excel = new Application();
            //打開Excel文件
            Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
            //獲取第一個工作表
            Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
            //數據排序
            Range sortRange = worksheet.Range["A2:C5"];
            sortRange.Sort(sortRange.Columns[1], XlSortOrder.xlDescending,
            sortRange.Columns[2], Type.Missing, XlSortOrder.xlAscending,
            Type.Missing, XlSortOrder.xlAscending, XlYesNoGuess.xlYes,
            Type.Missing, Type.Missing, XlSortOrientation.xlSortColumns,
            XlSortMethod.xlPinYin, XlSortDataOption.xlSortNormal,
            XlSortDialogOrder.xlSortDialogOrder, XlSortLanguageID.xlSortLanguageIDDefault);

            //數據篩選
            Range criteriaRange = worksheet.Range["A1:C5"];
            criteriaRange.AutoFilter(1, ">200", XlAutoFilterOperator.xlAnd, Type.Missing, true);
            //保存並關閉Excel文件
            workbook.Save();
            workbook.Close();
        }
    }
}

代碼中,我們首先創建一個Excel對象,然後打開指定路徑下的Excel文件。獲取第一個工作表,然後分別對數據進行了排序和篩選操作,最後保存並關閉Excel文件。

四、Excel圖像處理

Excel中也支持插入圖片,操作方式類似於Windows窗體的Image控件。

下面的代碼演示了如何讀取、插入和處理Excel中的圖像:

using Microsoft.Office.Interop.Excel;

namespace ExcelImage
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建Excel對象
            Application excel = new Application();
            //打開Excel文件
            Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
            //獲取第一個工作表
            Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
            //讀取圖像
            Range picRange = worksheet.Range["D1:D3"];
            foreach (Shape picShape in picRange.Shapes)
            {
                //插入圖像
                string picPath = @"D:\" + picShape.Name + ".png";
                picShape.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap);
                Image img = Clipboard.GetImage();
                img.Save(picPath, System.Drawing.Imaging.ImageFormat.Png);
                //更改圖像大小和位置
                picShape.Height = 100;
                picShape.Width = 100;
                picShape.Left = picShape.Left + picShape.Width + 10;
                picShape.Top = picShape.Top + picShape.Height + 10;
                //刪除原有圖像
                picShape.Delete();
                FileInfo file = new FileInfo(picPath);
                worksheet.Shapes.AddPicture(file.FullName, MsoTriState.msoFalse, MsoTriState.msoTrue,
                picShape.Left, picShape.Top, picShape.Width, picShape.Height);
            }
            //保存並關閉Excel文件
            workbook.Save();
            workbook.Close();
        }
    }
}

代碼中,我們首先創建一個Excel對象,然後打開指定路徑下的Excel文件。獲取第一個工作表,讀取需要操作的圖像,並插入到新位置,最後刪除原有圖像,保存Excel文件。

五、Excel表格處理

Excel中的表格是一種非常常見的數據結構,我們可以通過C#的Excel COM對象,對其中的表格進行操作,包括表格對齊、單元格合併等。

下面的代碼演示了如何對Excel表格進行操作,包括對齊、單元格合併等:

using Microsoft.Office.Interop.Excel;

namespace ExcelTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //創建Excel對象
            Application excel = new Application();
            //打開Excel文件
            Workbook workbook = excel.Workbooks.Open(@"D:\test.xlsx");
            //獲取第一個工作表
            Worksheet worksheet = (Worksheet)workbook.Worksheets.get_Item(1);
            //對齊
            Range alignRange = worksheet.Range["A1:C5"];
            alignRange.HorizontalAlignment = XlHAlign.xlHAlignCenter;
            alignRange.VerticalAlignment = XlVAlign.xlVAlignCenter;
            //單元格合併
            Range mergeRange = worksheet.Range["D1:E1"];
            mergeRange.MergeCells = true;
            mergeRange.Value = "Sales Report";
            //保存並關閉Excel文件
            workbook.Save();
            workbook.Close();
        }
    }
}

代碼中,我們首先創建一個Excel對象,然後打開指定路徑下的Excel文件。獲取第一個工作表,然後對選定區域進行了對齊和單元格合併操作,最後保存並關閉Excel文件。

原創文章,作者:TMPX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144663.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TMPX的頭像TMPX
上一篇 2024-10-26 11:52
下一篇 2024-10-26 11:52

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • 運維Python和GO應用實踐指南

    本文將從多個角度詳細闡述運維Python和GO的實際應用,包括監控、管理、自動化、部署、持續集成等方面。 一、監控 運維中的監控是保證系統穩定性的重要手段。Python和GO都有強…

    編程 2025-04-29
  • Python wordcloud入門指南

    如何在Python中使用wordcloud庫生成文字雲? 一、安裝和導入wordcloud庫 在使用wordcloud前,需要保證庫已經安裝並導入: !pip install wo…

    編程 2025-04-29
  • Python應用程序的全面指南

    Python是一種功能強大而簡單易學的編程語言,適用於多種應用場景。本篇文章將從多個方面介紹Python如何應用於開發應用程序。 一、Web應用程序 目前,基於Python的Web…

    編程 2025-04-29
  • Python小波分解入門指南

    本文將介紹Python小波分解的概念、基本原理和實現方法,幫助初學者掌握相關技能。 一、小波變換概述 小波分解是一種廣泛應用於數字信號處理和圖像處理的方法,可以將信號分解成多個具有…

    編程 2025-04-29
  • Python字符轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智能等領域廣泛應用。在很多場景下需要將字符串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字符轉列…

    編程 2025-04-29
  • Python初學者指南:第一個Python程序安裝步驟

    在本篇指南中,我們將通過以下方式來詳細講解第一個Python程序安裝步驟: Python的安裝和環境配置 在命令行中編寫和運行第一個Python程序 使用IDE編寫和運行第一個Py…

    編程 2025-04-29
  • FusionMaps應用指南

    FusionMaps是一款基於JavaScript和Flash的交互式地圖可視化工具。它提供了一種簡單易用的方式,將複雜的數據可視化為地圖。本文將從基礎的配置開始講解,到如何定製和…

    編程 2025-04-29
  • Python起筆落筆全能開發指南

    Python起筆落筆是指在編寫Python代碼時的編寫習慣。一個好的起筆落筆習慣可以提高代碼的可讀性、可維護性和可擴展性,本文將從多個方面進行詳細闡述。 一、變量命名 變量命名是起…

    編程 2025-04-29
  • Python中文版下載官網的完整指南

    Python是一種廣泛使用的編程語言,具有簡潔、易讀易寫等特點。Python中文版下載官網是Python學習和使用過程中的重要資源,本文將從多個方面對Python中文版下載官網進行…

    編程 2025-04-29

發表回復

登錄後才能評論