C# 对 Excel 的相关操作
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();
这样我们就获取到了我们的根目录。
接着我们创建了一个二维数组用于存储存储我们的数据。
将数据导成二维数组的方法在这里不细说,如果不懂可以自行百度。
有几个点可以讲一下:
- Excel中的索引是从1开始并不是我们常用的0开始
- 我们在读取完成后尽量的去关闭或者是清除垃圾,这样可以有效的防止下次操作时出现进程占用的尴尬情况。
- 代码中出现的UsedRange 表示被使用过的范围,如果不是很重要可以通过这个方式进行获取Excel 中的行数和列数。
- 在我获取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 的相关操作的更多相关文章
- input file 选择Excel文件 相关操作
1.HTML代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebFo ...
- .net core下对于Excel的一些操作及使用
原文:.net core下对于Excel的一些操作及使用 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.cs ...
- 理解CSV文件以及ABAP中的相关操作
在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...
- 如何在没有安装微软Excel环境下操作Excel文件?
在以前接触的项目中,由于很多客户对微软Excel的操作比较熟练,客户经常要求系统支持对Excel文件的读写.用.NET传统方法对Excel进行读写时,往往会涉及到不同版本兼容的问题,导致在本地测试一切 ...
- 从零自学Hadoop(20):HBase数据模型相关操作上
阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- 从零自学Hadoop(21):HBase数据模型相关操作下
阅读目录 序 变量 数据模型操作 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- Liunx下的有关于tomcat的相关操作 && Liunx 常用指令
先记录以下liunx下的有关于tomcat的相关操作 查看tomcat进程: ps-ef|grep java (回车) 停止tomcat进程: kill -9 PID (进程号如77447) (回车) ...
- pip的相关操作
>Python中的pip是什么?能够做些什么? pip是Python中的一个进行包管理的东西,能够下载包.安装包.卸载包......一些列操作 >怎么查看pip的相关信息 在控制台输入: ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
随机推荐
- 基于cyusb3014的usb3.0双目摄像头开发测试小结(使用mt9m001c12stm)
测试图像 摄像头分辨率为1280*1024,双目分辨率为2560*1024 ps:时钟频率太高,时序约束还得进一步细化,图像偶尔会出现部分雪花,下一步完善
- ASP.NET Core Web API 最佳实践指南
原文地址: ASP.NET-Core-Web-API-Best-Practices-Guide 介绍 当我们编写一个项目的时候,我们的主要目标是使它能如期运行,并尽可能地满足所有用户需求. 但是,你难 ...
- Test 1022
T1 AERODROM (二分答案 TimeLimit: 1000MS Memory Limit: 32768KB \(N\)个登机口,办理登机业务,第\(i\)个窗口的单位办理时间为\(T_i\), ...
- VS2019 开发Django(十)------JavaScript与Django的数据交互
导航:VS2019开发Django系列 这一篇介绍如何使用BootStrap Table这个组件来绑定渲染数据, 1)先来看一下BootStrap Table是怎么绑定数据的. 通过数据属性 给定da ...
- 【每天一题】LeetCode 172. 阶乘后的零
开源地址:点击该链接 题目描述 https://leetcode-cn.com/problems/factorial-trailing-zeroes 给定一个整数 n,返回 n! 结果尾数中零的数量. ...
- dotnetcore执行shell脚本
我们可以使有dotnetcore跨平台的特性,优雅的实现在dotnetcore执行shell (bash). 代码如下: using System; using System.Collections ...
- TP5中find_in_set的用法
TP5.1.22版本 $id=4; Db::name('menu')->where('FIND_IN_SET(:id,pid_all)',['id' => $id])->update ...
- leaflet 结合 geoserver 实现地图属性查询(附源码下载)
前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...
- Linux下修改MySQL数据库数据文件路径
使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysq ...
- R语言学习-基础篇1
###第一周:R基础 rm(list = ls()) #ctr+L###矩阵相乘,函数diag()a=matrix(1:12,nrow=3,ncol=4)b=matrix(1:12,nrow=4,n ...