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();
}
}
}
使用示例:
ExcelHelper excel = new ExcelHelper("filePath"); DataTable dt = excel.ReadExcel(1); excel.WriteExcel(2, dt); excel.Save(); excel.Close()
原文地址: https://www.cveoy.top/t/topic/hiyN 著作权归作者所有。请勿转载和采集!