C#实现Excel表读写

在C#中,可以使用第三方库来实现Excel表的读写。以下是一些常用的方法:

  1. 使用EPPlus库:EPPlus是一个开源的.NET库,用于操作Excel文件。它支持读取和写入各种类型的Excel文件,包括.xlsx和.xls格式。要使用EPPlus库,首先需要安装它。可以通过NuGet包管理器来安装。

安装命令:

Install-Package EPPlus

使用示例:

using OfficeOpenXml;

// 读取Excel文件
using (ExcelPackage package = new ExcelPackage(new FileInfo("example.xlsx")))
{
    ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
    for (int row = 1; row <= worksheet.Dimension.Rows; row++)
    {
        for (int col = 1; col <= worksheet.Dimension.Columns; col++)
        {
            Console.Write(worksheet.Cells[row, col].Value + "\t");
        }
        Console.WriteLine();
    }
}

// 写入Excel文件
using (ExcelPackage package = new ExcelPackage())
{
    ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");
    worksheet.Cells[1, 1].Value = "Hello";
    worksheet.Cells[2, 1].Value = "World";
    package.SaveAs(new FileInfo("output.xlsx"));
}
  1. 使用NPOI库:NPOI是一个用于操作Microsoft Office文档的.NET库,包括Excel。要使用NPOI库,首先需要安装它。可以通过NuGet包管理器来安装。

安装命令:

Install-Package NPOI

使用示例:

using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;

// 读取Excel文件(.xls格式)
using (FileStream file = new FileStream("example.xls", FileMode.Open, FileAccess.Read))
{
    IWorkbook workbook = new XSSFWorkbook(file);
    ISheet sheet = workbook.GetSheetAt(0);
    for (int i = 0; i < sheet.PhysicalNumberOfRows; i++)
    {
        for (int j = 0; j < sheet.GetRow(i).PhysicalNumberOfCells; j++)
        {
            Console.Write(sheet.GetRow(i).GetCell(j).ToString() + "\t");
        }
        Console.WriteLine();
    }
}

// 写入Excel文件(.xls格式)
using (FileStream file = new FileStream("output.xls", FileMode.CreateNew, FileAccess.Write))
{
    IWorkbook workbook = new XSSFWorkbook();
    ISheet sheet = workbook.CreateSheet("Sheet1");
    sheet.CreateRow(0).CreateCell(0).SetCellValue("Hello");
    sheet.CreateRow(1).CreateCell(0).SetCellValue("World");
    workbook.Write(file);
}
  1. 使用Microsoft.Office.Interop.Excel库:这个库允许直接调用Microsoft Office应用程序,包括Excel。要使用这个库,首先需要在项目中添加对Microsoft.Office.Interop.Excel的引用。然后,可以使用以下代码来读取和写入Excel文件:
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

// 读取Excel文件
Application excelApp = new Application();
Workbook excelWorkbook = excelApp.Workbooks.Open("example.xlsx");
_Worksheet excelWorksheet = (_Worksheet)excelWorkbook.Sheets[1];
for (int row = 1; row <= excelWorksheet.UsedRange.Rows.Count; row++)
{
    for (int col = 1; col <= excelWorksheet.UsedRange.Columns.Count; col++)
    {
        Console.Write(excelWorksheet.Cells[row, col].Value2 + "\t");
    }
    Console.WriteLine();
}
excelWorkbook.Close();
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
Marshal.ReleaseComObject(excelWorkbook);
Marshal.ReleaseComObject(excelWorksheet);

// 写入Excel文件
excelApp = new Application();
excelWorkbook = excelApp.Workbooks.Add();
excelWorksheet = (_Worksheet)excelWorkbook.Sheets[1];
excelWorksheet.Cells[1, 1].Value2 = "Hello";
excelWorksheet.Cells[2, 1].Value2 = "World";
excelWorkbook.SaveAs("output.xlsx");
excelWorkbook.Close();
excelApp.Quit();
Marshal.ReleaseComObject(excelApp);
Marshal.ReleaseComObject(excelWorkbook);
Marshal.ReleaseComObject(excelWorksheet);
  1. 使用CSV文件,如果Excel文件较简单,你可以将其另存为CSV格式,然后使用C#的文本文件处理功能来读取和写入CSV文件。
  • 读取CSV文件:
  csharpstring[] lines = File.ReadAllLines("example.csv");
  
  foreach (string line in lines)
  {
      string[] values = line.Split(',');
      // 处理每一行的值
  }
  • 写入CSV文件:
  csharpList<string> lines = new List<string>();
  
  // 添加CSV行
  lines.Add("Column1,Column2,Column3");
  
  // 添加数据行
  lines.Add("Value1,Value2,Value3");
  
  // 写入CSV文件
  File.WriteAllLines("output.csv", lines);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里狼~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值