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/n/144663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TMPXTMPX
上一篇 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

发表回复

登录后才能评论