C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件

项目添加应用 Microsoft.Office.Interop.Excel.dll 文件
引用命名空间:
using Excel = Microsoft.Office.Interop.Excel;
简单操作Excel文件:
/// <summary>
/// 简单操作Excel文件
/// </summary>
/// <param name="excelPath">excel 文件路径</param>
/// <returns></returns>
public void ExcelOp(string excelPath)
{
string ExcelFilePath = excelPath.Trim();
//set columns
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("订单号", "A");//
dic.Add("数量", "B"); Excel.Application excel = new Excel.Application();
Excel.Workbook wb = null;
excel.Visible = false;//设置调用引用的 Excel文件是否可见
excel.DisplayAlerts = false;
wb = excel.Workbooks.Open(ExcelFilePath);
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[]; //索引从1开始 //(Excel.Worksheet)wb.Worksheets["SheetName"];
int rowCount = ;//有效行,索引从1开始
try
{
rowCount = ws.UsedRange.Rows.Count;//赋值有效行 string ordernum = string.Empty;
string count = string.Empty;
//循环行
for (int i = ; i <= rowCount; i++)//
{
if (ws.Rows[i] != null)
{
ordernum = ws.Cells[i, dic["订单号"]].Value2.ToString();//取单元格值
count = ws.Cells[i, dic["数量"]].Value2.ToString();//ws.Cells[i, 2].Value2.ToString();
}
}
//循环列
for (int i = ; i <= ws.UsedRange.Columns.Count; i++)
{
//ws.Columns[i]
}
}
catch (Exception ex) { XtraMessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
finally
{
ClosePro(excelPath, excel, wb);
}
}
关闭Excel进程:
/// <summary>
/// 关闭Excel进程
/// </summary>
/// <param name="excelPath"></param>
/// <param name="excel"></param>
/// <param name="wb"></param>
public void ClosePro(string excelPath, Excel.Application excel, Excel.Workbook wb)
{
Process[] localByNameApp = Process.GetProcessesByName(excelPath);//获取程序名的所有进程
if (localByNameApp.Length > )
{
foreach (var app in localByNameApp)
{
if (!app.HasExited)
{
#region
////设置禁止弹出保存和覆盖的询问提示框
//excel.DisplayAlerts = false;
//excel.AlertBeforeOverwriting = false; ////保存工作簿
//excel.Application.Workbooks.Add(true).Save();
////保存excel文件
//excel.Save("D:" + "\\test.xls");
////确保Excel进程关闭
//excel.Quit();
//excel = null;
#endregion
app.Kill();//关闭进程
}
}
}
if (wb != null)
wb.Close(true, Type.Missing, Type.Missing);
excel.Quit();
// 安全回收进程
System.GC.GetGeneration(excel);
}
C# 使用自带Microsoft.Office.Interop.Excel简单操作Excel文件的更多相关文章
- 关于.net Microsoft.Office.Interop.Word组建操作word的问题,如何控制word表格单元格内部段落的样式。
控制word表格单元格内部文字样式.我要将数据导出到word当中,对于word表格一个单元格中的一段文字,要设置不同的样式,比如第一行文字作为标题要居中,加粗,第二行为正常的正文. 代码如下 publ ...
- ruby中excel简单操作以及文件读取操作方法
# -*-coding:utf-8 -*-#author:kanlijunrequire 'win32ole'require 'fileutils'class ResultAnalyse @@i=0 ...
- window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法
生成execl时遇到的问题: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005 ...
- 利用Microsoft.Office.Interop.Excel 将web页面转成PDF
网上有很多将Web页面转成PDF的方法,还有许多收费的第三方插件.其实利用Office 自带的将EXCEL发布成PDF的功能就可以实现,如果你的需求没有多复杂,可以采用笔者的方法. 首先将web页面h ...
- Microsoft.Office.Interop.Excel的用法以及利用Microsoft.Office.Interop.Excel将web页面转成PDF
1.常见用法 using Microsoft.Office.Interop.Excel; 1)新建一个Excel ApplicationClass ExcelApp = New A ...
- 引用Microsoft.Office.Interop.Excel出现的问题
引用Microsoft.Office.Interop.Excel出现的问题 转自:http://www.hccar.com/Content,2008,6,11,75.aspx,作者:方继祥 操作背 ...
- Microsoft.Office.Interop.Excel操作Excel文件时出现的问题及解决方案
问题描述: Microsoft.Office.Interop.Excel.Worksheet 打不开文件 Microsoft Office Excel 不能访问文件"a.xls". ...
- Microsoft.Office.Interop.Excel 程序集引用 ,Microsoft.Office.Interop.Excel.ApplicationClass 无法嵌入互操作类型
using Microsoft.Office.Interop.Excel 添加程序集引用 方法:在引用--程序集--扩展中,添加引用Microsoft.Office.Interop.Excel,此 ...
- Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)
Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决) 论坛里的帮助:http://bbs.csdn.net/topics/39 ...
随机推荐
- error: Unexpected console statement (no-console)
使用console.log 报错??这个错误是Vuejs - 使用ESLint检查代码而产生的 解决办法: 1.不处理,虽然有恼人的提示,但是实际上能使用console.log的 2.关掉ESLint ...
- vim-plug 安装 jedi-vim
安装: Plug 'davidhalter/jedi-vim' :PlugInstall 我就在配置文件里写了一个配置项 let g:jedi#use_tabs_not_buffers = 1 进入定 ...
- 【故障公告】数据库服务器 CPU 近 100% 引发的故障
抱歉,今天上午 10:48 ~ 10:33 期间,我们所使用的数据库服务(阿里云 RDS 实例 SQL Server 2016 标准版)又出现了 CPU 近 100% 问题,由此给您带来麻烦,请您谅解 ...
- vue学习笔记(八)组件校验&通信
前言 在上一章博客的内容中vue学习笔记(七)组件我们初步的认识了组件,并学会了如何定义局部组件和全局组件,上一篇内容仅仅只是对组件一个简单的入门,并没有深入的了解组件当中的其它机制,本篇博客将会带大 ...
- css优先级之important
css优先级之important
- Linux海量数据高并发实时同步架构方案杂谈
不论是Redhat还是CentOS系统,除去从CDN缓存或者数据库优化.动静分离等方面来说,在架构层面上,实 现海量数据高并发实时同步访问概括起来大概可以从以下几个方面去入手,当然NFS的存储也可以是 ...
- CSS 使用id属性的规则
html中的id属性是什么?本篇文章给大家带来的内容是介绍html中的id属性,让大家了解id属性的使用方法,希望对大家有所帮助. html的id属性是什么? html的id属性其实就是一个HTML元 ...
- FileReader.result
FileReader.result 该属性返回文件的内容.此属性仅在读取操作完成后才有效,并且数据的格式取决于用于启动读取操作的方法.FileReader]**result** 句法 var file ...
- Chrome插件安装的3种方法,解决拖放不能安装的情况,并提供插件下载
本文摘录于Chrome插件网站 方法一:拖放安装 下载插件的crx文件后,打开Chrome的扩展页面(chrome://extensions/或按Chrome菜单图标>更多工具>扩展程序) ...
- 如何切换本地的GIT账号
如何切换本地的GIT账号 1.为什么登陆第一次Git之后,就不用登陆了呢? 因为电脑已经将你的登陆凭据给保存起来了. 这也正是你不知道如何切换账号的原因. 2.在哪里能看已经保存的登陆凭证呢?并能够切 ...