C# 手写操作 Excel 库:读取和写入数据
以下是一个基于 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();
原文地址: https://www.cveoy.top/t/topic/oLnn 著作权归作者所有。请勿转载和采集!