C# 对Excel的操作

学习自: 教练辅导


C# 对Excel的读取操作

我们需要额外添加引用:

  • References
  • 搜索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 的相关操作就这么多了,感谢你的阅读。

C# 对 Excel 的相关操作的更多相关文章

  1. input file 选择Excel文件 相关操作

    1.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFo ...

  2. .net core下对于Excel的一些操作及使用

    原文:.net core下对于Excel的一些操作及使用 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...

  3. 理解CSV文件以及ABAP中的相关操作

    在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...

  4. 如何在没有安装微软Excel环境下操作Excel文件?

    在以前接触的项目中,由于很多客户对微软Excel的操作比较熟练,客户经常要求系统支持对Excel文件的读写.用.NET传统方法对Excel进行读写时,往往会涉及到不同版本兼容的问题,导致在本地测试一切 ...

  5. 从零自学Hadoop(20):HBase数据模型相关操作上

    阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

  6. 从零自学Hadoop(21):HBase数据模型相关操作下

    阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

  7. Liunx下的有关于tomcat的相关操作 && Liunx 常用指令

    先记录以下liunx下的有关于tomcat的相关操作 查看tomcat进程: ps-ef|grep java (回车) 停止tomcat进程: kill -9 PID (进程号如77447) (回车) ...

  8. pip的相关操作

    >Python中的pip是什么?能够做些什么? pip是Python中的一个进行包管理的东西,能够下载包.安装包.卸载包......一些列操作 >怎么查看pip的相关信息 在控制台输入: ...

  9. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

随机推荐

  1. php5.4.16执行shell脚本

    因为要用到Python脚本,所以打算直接在PHP中直接调用系统命令system(). 要注意两点: 一.PHP5.3以上不存在安全模式,即要直接执行脚本不需要作任何其他配置. 二.system函数格式 ...

  2. hdu 1028 Ignatius and the Princess III (n的划分)

    Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K ...

  3. 微服务架构 SpringBoot(二)

    第二天内容:想来想去玩个ssm小demo吧 1.创建表 2..引入相关mybatis 数据库jar: <!--mybatis --> <dependency> <grou ...

  4. Wonder暂停开发,开始写书

    公告 大家好,我们决定暂时停止开发Wonder,但会继续维护当前的Wonder版本(如继续维护官网.在线编辑器.QQ群等). 我们当前的主要任务是 写书:基于Wonder 1.0版本的开发经验,写一本 ...

  5. vue路由基础总结

    1.创建项目 为了练习路由 这里没有选择路由 就选了Bable 自己一步一步的配置 加深印象. 然后下载路由 npm install vue-router --save 2.基础配置 src文件下新建 ...

  6. JVM 学习笔记二 :JVM内存区域

    一.内存分配概述

  7. Reproduction CVE_2019_0708

    Xx_introduction Please protection,respect,love,"China's Internet Security Act"! For learni ...

  8. Android 项目优化(七):阿里巴巴Android开发手册整理总结

    本来之前觉得Android项目优化系列的文章基本整理完毕了,但是近期看了一下<阿里Android开发手册>有了很多收获,想再整理一篇,下面就开始吧. 先在这里列一下之前整理的文章及链接: ...

  9. ESLint + Prettier + husky + lint-staged 规范统一前端代码风格

    写在前面: ESLint: Find and fix problems in your JavaScript code. Prettier: Prettier is an opinionated co ...

  10. JavaScript图形实例:纺织物图案

    1.简单纺织物图案 先在HTML页面中设置一个画布. <canvas id="myCanvas" width="360" height="240 ...