C# 对 Excel 的相关操作

C# 对Excel的操作

学习自: 教练辅导


C# 对Excel的读取操作

我们需要额外添加引用:

  • References
  • 搜索Excel
  • C# 对 Excel 的相关操作
  • 这样我们的基础就添加完成了。
  • 并且在using 中添加:
  • using Excel = Mirosoft.Office.Interop.Excel;

这边我们使用我们的控制台程序来对他进行操作。
我们先来看一下我们的完整代码。

//读取
Excel.Application excel_import = new Excel.Application();
Excel.Workbook book_import = excel_import.Workbooks.Open(FilePath + "/Data.xlsx");
Excel.Worksheet sheet_import = book_import.Sheets[1];

object[,] data = new object[sheet_import.UsedRange.Cells.Rows.Count, sheet_import.UsedRange.Cells.Columns.Count];
int import_row_count = sheet_import.UsedRange.Cells.Rows.Count;
int import_column_count = sheet_import.UsedRange.Cells.Columns.Count;
for (int i = 0; i < import_row_count; i++)
{
    for (int j = 0; j < import_column_count; j++)
    {
        data[i,j]=sheet_import.Cells[i+1,j+1].Text;
    }
}

这样 我们的读取操作就完成了我们的操作也是比较简单

1.我们需要创建我们的Excel,并且给到我们的Excel 被读取文件的目录,但是需要注意的是,Excel的读取文件目录无法直接读取到bin目录及Debug目录下。需要认为的去获取当前项目的根目录,

string FilePath = System.IO.Directory.GetCurrentDirectory();

这样我们就获取到了我们的根目录。

接着我们创建了一个二维数组用于存储存储我们的数据。
将数据导成二维数组的方法在这里不细说,如果不懂可以自行百度。

有几个点可以讲一下:

  1. Excel中的索引是从1开始并不是我们常用的0开始
  2. 我们在读取完成后尽量的去关闭或者是清除垃圾,这样可以有效的防止下次操作时出现进程占用的尴尬情况。
  3. 代码中出现的UsedRange 表示被使用过的范围,如果不是很重要可以通过这个方式进行获取Excel 中的行数和列数。
  4. 在我获取Excel指定单元格时前往要注意是从 ’ 1 ‘ 开始并非是 0 开始。

这样我们的C#对Excel 的读取操作就基本完成了。


C# 导出Excel格式的文件

首先我们讲一下我们大概的流程。

确定文件保存位置 -> 创建Excel进程 -> 创建Excel 的使用区域(这一步十分的重要)-> 将 被导入数据作为一个整体,直接赋值给我们Excel的 sheet表格。 -> 保存文件 -> 退出我们的进程 -> 使用 GC进行垃圾回收

大概流程应该比较好懂,没有什么难度。
可能会很好奇为啥要将被导入数据作为一个整体赋值给生成文件,因为这样的速度奇快。

然后我们看一下代码:

string export_path = @"F:\test.xlsx";
Excel.Application excel_export = new Excel.Application();
Excel.Workbook book_export = excel_export.Workbooks.Add(true);
Excel.Worksheet sheet_export = book_export.ActiveSheet as Excel.Worksheet;
Excel.Range range = sheet_export.Range[excel_export.Cells[1, 1], excel_export.Cells[import_row_count, import_column_count]];
range.Value2 = data;
GC.Collect();
book_export.SaveAs(export_path);
book_export.Save();
excel_export.Quit();

这样我们的文件导出为Excel就完成了。


我们来详细的讲一下我们的导出操作。
首先我们需要确定好我们的文件保存路径,然后我们生成Excel 进程,并且确定 被导入数据在Excel 所要占用的位置,将数据作为整体赋值给rabge.
然后就是文件保存、进程退出、垃圾回收。


好了,这个Excel 的相关操作就这么多了,感谢你的阅读。

上一篇:在ASP.NET Core中使用EPPlus导入出Excel文件


下一篇:1252. Cells with Odd Values in a Matrix