分享一个 常用的c# winform项目操作 excel文档的操作类,包含了xls文件的读取,编辑,写入的所有操作,很实用

今天分享一些C#编程如何操作Excel文件。你可能会想,“Excel?这不是用来做表格的吗?”
是的,没错!Excel确实是一个用于处理表格数据的工具,但你知道吗?我们也可以用C#来控制它!

你可能会问:“为什么要用C#来控制Excel呢?”好问题!想象一下,你有一个超级复杂的Excel文件,里面有成千上万条数据,你需要对这些数据进行分析、处理或者导出成其他格式。手动去做这些操作是相当费时费力的,但如果我们能够编写一些C#代码,让计算机帮我们自动完成这些任务,岂不是省事多了?

所以今天,我想和你分享一些简单易懂的C#代码,让你能够轻松地读取、编辑、保存甚至删除Excel文件。无论你是刚刚开始学习编程,还是已经有一些经验,这些代码都会对你有所帮助。让我们一起来看看吧!

不要担心,我会尽量用最简单的语言来解释代码,让你能够轻松理解。如果你有任何问题,都可以随时在评论区留言,我会尽快回复的!

让我们开始吧! 🚀
如果下面代码对你有用,请点个赞给点支持蟹蟹。

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

namespace ExcelOperations
{
    public class ExcelHelper
    {
        private Excel.Application excelApp;
        private Excel.Workbook workbook;
        private Excel.Worksheet worksheet;

        // 初始化Excel应用程序
        public void InitializeExcel()
        {
            excelApp = new Excel.Application();
            excelApp.Visible = false; // 不显示Excel界面
            workbook = excelApp.Workbooks.Add();
            worksheet = workbook.ActiveSheet;
        }

        // 从Excel文件加载数据到DataTable
        public DataTable ReadExcel(string filePath)
        {
            DataTable dataTable = new DataTable();
            try
            {
                if (File.Exists(filePath))
                {
                    Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(filePath);
                    Excel.Worksheet excelWorksheet = excelWorkbook.Sheets[1];
                    Excel.Range excelRange = excelWorksheet.UsedRange;

                    int rows = excelRange.Rows.Count;
                    int columns = excelRange.Columns.Count;

                    for (int i = 1; i <= columns; i++)
                    {
                        dataTable.Columns.Add($"Column {i}");
                    }

                    for (int i = 1; i <= rows; i++)
                    {
                        DataRow newRow = dataTable.NewRow();
                        for (int j = 1; j <= columns; j++)
                        {
                            newRow[j - 1] = excelRange.Cells[i, j].Value;
                        }
                        dataTable.Rows.Add(newRow);
                    }

                    excelWorkbook.Close(false);
                }
                else
                {
                    throw new FileNotFoundException("File not found.", filePath);
                }
            }
            catch (Exception ex)
            {
                // 处理异常
                Console.WriteLine("Error reading Excel file: " + ex.Message);
            }
            return dataTable;
        }

        // 编辑Excel中的数据
        public void EditExcelData(int rowIndex, int columnIndex, string newValue)
        {
            worksheet.Cells[rowIndex, columnIndex] = newValue;
        }

        // 保存Excel文件
        public void SaveExcel(string filePath)
        {
            workbook.SaveAs(filePath);
        }

        // 关闭Excel应用程序
        public void CloseExcel()
        {
            workbook.Close();
            excelApp.Quit();
        }

        // 删除Excel文件
        public void DeleteExcel(string filePath)
        {
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }
        }
    }
}

这里是每个函数的示例使用方法:

using System;
using System.Data;

namespace ExcelOperations
{
    class Program
    {
        static void Main(string[] args)
        {
            ExcelHelper excelHelper = new ExcelHelper();
            string filePath = "sample.xlsx"; // Excel文件路径

            // 初始化Excel应用程序
            excelHelper.InitializeExcel();

            // 示例:读取Excel文件到DataTable
            DataTable dataTable = excelHelper.ReadExcel(filePath);

            // 打印DataTable中的数据
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write(item + "\t");
                }
                Console.WriteLine();
            }

            // 示例:编辑Excel中的数据
            excelHelper.EditExcelData(2, 2, "Updated Value");

            // 示例:保存Excel文件
            excelHelper.SaveExcel(filePath);

            // 示例:关闭Excel应用程序
            excelHelper.CloseExcel();

            // 示例:删除Excel文件
            excelHelper.DeleteExcel(filePath);
        }
    }
}

这个示例展示了如何使用ExcelHelper类来读取、编辑、保存和删除Excel文件。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要引用Microsoft.Office.Interop.Excel命名空间,然后在窗体中添加一个DataGridView和三个按钮,分别对应保存、查看和删除操作。 在保存操作中,我们需要打开Excel模板文件,将DataGridView中的数据写入Excel文件中,然后保存并关闭Excel文件。代码如下: ```csharp using Excel = Microsoft.Office.Interop.Excel; private void btnSave_Click(object sender, EventArgs e) { Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open(@"C:\Path\To\Excel\Template.xlsx"); Excel.Worksheet worksheet = workbook.Worksheets["Sheet1"]; for(int i = 0; i < dataGridView1.Rows.Count; i++) { for(int j = 0; j < dataGridView1.Columns.Count; j++) { worksheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } } workbook.Save(); workbook.Close(); excel.Quit(); } ``` 在查看操作中,我们需要打开Excel模板文件读取其中的数据,然后将数据显示在DataGridView中。代码如下: ```csharp private void btnView_Click(object sender, EventArgs e) { Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open(@"C:\Path\To\Excel\Template.xlsx"); Excel.Worksheet worksheet = workbook.Worksheets["Sheet1"]; int rowCount = worksheet.UsedRange.Rows.Count; int columnCount = worksheet.UsedRange.Columns.Count; for(int i = 2; i <= rowCount; i++) { DataGridViewRow row = new DataGridViewRow(); for(int j = 1; j <= columnCount; j++) { if(worksheet.Cells[i, j].Value != null) row.Cells.Add(new DataGridViewTextBoxCell { Value = worksheet.Cells[i, j].Value.ToString() }); else row.Cells.Add(new DataGridViewTextBoxCell { Value = "" }); } dataGridView1.Rows.Add(row); } workbook.Close(); excel.Quit(); } ``` 在删除操作中,我们需要删除Excel模板文件。代码如下: ```csharp private void btnDelete_Click(object sender, EventArgs e) { File.Delete(@"C:\Path\To\Excel\Template.xlsx"); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值