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. iOS开发 为何 大不如前?原因竟然是这个?

    前言: 近期,社会上对iOS开发行业的负面信息越来越多,并且还被一些黑骗机构的胡诌八扯越描越黑,现在iOS开发按照开发者与公司招聘的数量上来看,是显示的供大于求,但是从各公司的招人计划上来看,明显是供 ...

  2. 【重温基础】16.JSON对象介绍

    本文是 重温基础 系列文章的第十六篇. 今日感受:静. 系列目录: [复习资料]ES6/ES7/ES8/ES9资料整理(个人整理) [重温基础]1-14篇 [重温基础]15.JS对象介绍 本章节复习的 ...

  3. Django ContentType 的使用

    引入 一切优化,最终都是关于需求的优化.本文介绍需求确定之后的数据库表结构设计优化. 程序员应该都知道,编程是数据结构和算法的结合.所谓数据就是用户需要访问和操作的资源,比如购物类App里面的商品,图 ...

  4. dapr微服务.netcore sdk入门

    Actors入门 先决条件 .Net Core SDK 3.0 Dapr CLI Dapr DotNet SDK 概述 本文档描述如何在客户端应用程序上创建Actor(MyActor)并调用其方法. ...

  5. MYSQL-JDBC批量新增-更新-删除

    目录 1 概述 2 开启MYSQL服务端日志 3 深入MYSQL/JDBC批量插入 3.1 从一个例子出发 3.2 JDBC的批量插入操作 3.3 两个常被忽略的问题 3.5 误区 4 MYSQL/J ...

  6. OS OSTEP (Operating Systems Three Easy pieces 操作系统导论 )

    读<OSTEP>的一点重点记录与感悟 (未完) Chapter-2 第二章 1. 操作系统的设计目标:  抽象.高性能.保护.不间断运行. 抽象:建立一些“抽象”,让操作系统方便和易于使用 ...

  7. 历史上的今天接口api

    ip地址查询 www.ipip5.com 为大家提供历史上的今天接口api,提供txt和json两种返回格式.   1.txt文本格式 http://www.ipip5.com/today/api.p ...

  8. 五分钟了解ES6对数值的扩展

    文章目录 数值的扩展(ES6) 1. 二进制八进制表示法 2. Number对象 3. Math对象 4. 指数运算符 5. Integer 数据类型 5.1 简介 5.2 运算 数值的扩展(ES6) ...

  9. [ASP.NET Core 3框架揭秘] 依赖注入[6]:服务注册

    通过<利用容器提供服务>我们知道作为依赖注入容器的IServiceProvider对象是通过调用IServiceCollection接口的扩展方法BuildServiceProvider创 ...

  10. pytho GUI编程之Tkinter

    摘录 python核心编程s GUI(Graphical User Interface)图形用户界面. Tcl.Tk和Tkinter Tkinter是python的默认GUI库.它基于Tk工具包,该工 ...