以下是一个基于 C# 手写操作 Excel 库的示例代码:

using System;
using System.Data;
using System.IO;
using System.Runtime.InteropServices;
using Microsoft.Office.Interop.Excel;

namespace ExcelLibrary
{
    public class ExcelHelper
    {
        private Application excelApp;
        private Workbook excelWorkbook;
        private Worksheet excelWorksheet;

        public ExcelHelper(string filePath)
        {
            excelApp = new Application();
            excelWorkbook = excelApp.Workbooks.Open(filePath);
            excelWorksheet = excelWorkbook.ActiveSheet;
        }

        public void Close()
        {
            excelWorkbook.Close();
            excelApp.Quit();

            Marshal.ReleaseComObject(excelWorksheet);
            Marshal.ReleaseComObject(excelWorkbook);
            Marshal.ReleaseComObject(excelApp);
        }

        public DataTable ReadExcel(int sheetIndex)
        {
            DataTable dt = new DataTable();

            Range range = excelWorksheet.UsedRange;

            int columnsCount = range.Columns.Count;
            int rowsCount = range.Rows.Count;

            for (int i = 1; i <= columnsCount; i++)
            {
                dt.Columns.Add(new DataColumn((range.Cells[1, i] as Range).Value.ToString()));
            }

            for (int i = 2; i <= rowsCount; i++)
            {
                DataRow row = dt.NewRow();

                for (int j = 1; j <= columnsCount; j++)
                {
                    row[j - 1] = (range.Cells[i, j] as Range).Value.ToString();
                }

                dt.Rows.Add(row);
            }

            return dt;
        }

        public void WriteExcel(int sheetIndex, DataTable dt)
        {
            excelWorksheet = excelWorkbook.Sheets[sheetIndex];

            for (int i = 0; i < dt.Columns.Count; i++)
            {
                (excelWorksheet.Cells[1, i + 1] as Range).Value = dt.Columns[i].ColumnName;
            }

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    (excelWorksheet.Cells[i + 2, j + 1] as Range).Value = dt.Rows[i][j].ToString();
                }
            }
        }

        public void Save()
        {
            excelWorkbook.Save();
        }
    }
}

使用示例:

```C#
ExcelHelper excel = new ExcelHelper('filePath');
DataTable dt = excel.ReadExcel(1);
excel.WriteExcel(2, dt);
excel.Save();
excel.Close();
C# 手写操作 Excel 库:读取和写入数据

原文地址: https://www.cveoy.top/t/topic/oLnn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录