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. Python3 并发编程1

    目录 操作系统发展 穿孔卡片 批处理 多道技术(单核) 并发与并行 进程 程序与进程 进程调度 进程的三个状态 同步和异步 阻塞与非阻塞 僵尸进程与孤儿进程 守护进程 Python中的进程操作 Pro ...

  2. kubernetes-集群备份和恢复

    一.备份   思路: ①集群运行中etcd数据备份到磁盘上 ②kubeasz项目创建的集群,需要备份CA证书文件,以及ansible的hosts文件   [deploy节点操作] 1:创建存放备份文件 ...

  3. web漏洞-命令执行、文件上传、XSS

    一.命令执行   1:什么是命令执行? 命令执行漏洞是指攻击者可以随意执行系统命令.属于高危漏洞之一任何脚本语言都可以调用操作系统命令. 应用有时需要调用一些执行系统命令的函数,举个例子如:PHP中的 ...

  4. LNMP-Nginx配置不记录静态文件、过期时间

    用户访问web网站,通常日志文件会记录很多web站点上的一些静态文件信息,如果长期不处理,日志文件会越来越大,占用的系统资源也越大,此时就需要我们配置不记录静态文件和过期时间,减少日志文件记录过多不必 ...

  5. 使用vsCode配合IAR搭建arm开发环境

    众所周知IAR的编辑功能就是个垃圾,但是不得不承认IAR的编译器相当的牛X,经常以稳定可靠而著称,为此我们把VSCODE强大的编辑功能和IAR结合一下来加快我们的开发周期. 一.下载VSCODE并安装 ...

  6. DS-5新加交叉编译工具

    Adding New Compiler Toolchains to DS-5 In this tutorial, you will learn how to add new compiler tool ...

  7. poj 1511 Invitation Cards (最短路)

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 33435   Accepted: 111 ...

  8. Spring Boot 外部化配置(二) - @ConfigurationProperties 、@EnableConfigurationProperties

    目录 3.外部化配置的核心 3.2 @ConfigurationProperties 3.2.1 注册 Properties 配置类 3.2.2 绑定配置属性 3.1.3 ConfigurationP ...

  9. Python自定义包引入【新手必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:sys_song python中的Module是比较重要的概念.常见的情 ...

  10. Docker+DokcerFile 简单命令和简单镜像配置----Tomcat+jdk+centos7

    宿主机描述:docker info (自身的描述)docker --helpdocker images(查看所有镜像)docker images -adocker images -q(显示镜像ID)d ...