C#操作Excel

  • 数据的读写
    • 前情提要
    • 实例
    • 指定打印机打印
    • 附加:打印时预览配置

数据的读写

前情提要

本文对于excel的操作使用的是Microsoft.Office.Interop.Excel这个库,所以添加引用后

头部加入:using Excel = Microsoft.Office.Interop.Excel;

实例

1.新建Windows Application应用程序;
2.在form中添加button控件.
3.进入button点击事件

因为对excel数据的操作基本就是文本和单选框的选择,所以下面主要对两种情况进行介绍

//实例化Excel.Application
Excel.Application excelapp = new Excel.Application();
//打开excel表格如果路径分隔为\则在这之前得加个@取消转义,不加就把\改成/吧
Excel.Workbook wb = excelapp.Workbooks.Open(@"d:\1231.xlsx");
//指定excel表格中的第一个sheet(工作表)
Excel.Worksheet WS = (Excel.Worksheet)wb.Worksheets[1];
//WS.CheckBoxes(Type.Missing)获取表格中的所有单选框对象,按单选框名称从小到大排序(也就是创建顺序)
Excel.CheckBoxes ckbs = (Excel.CheckBoxes)WS.CheckBoxes(Type.Missing);//使用WS.Cells.get_Range便可指定excel表格中的单元格进行值得获取和修改
MessageBox.Show(WS.Cells.get_Range("C4").Value);//获取值,MessageBox用来显示效果
WS.Cells.get_Range("C4").Value = "李四";//修改值Excel.CheckBox cbt = (Excel.CheckBox)ckbs.Item(1);//获取单选框的第一个对象,也就是第一个创建的单选框
MessageBox.Show(cbt.Value);//获取值,MessageBox用来显示效果
cbt.Value = -4146;//修改值,1为选中,-4146为取消选中(1对应excel中的xlOn的10进制,-4146为xlOff的10进制)xl是execl特殊常量的前缀wb.Close(true, @"d:1231.xlsx", Type.Missing);//关闭excel进程并保存(和原来表格一样的路径和名字即为覆盖,不同则另存为)
excelapp.Quit();//释放

指定打印机打印

1.在form中添加button2控件.
2.进入button2点击事件

//同上先打开excel进程并指定工作表
Excel.Application excelapp = new Excel.Application();
Excel.Workbook wb = excelapp.Workbooks.Open(@"d:\1231.xlsx");
Excel.Worksheet WS = (Excel.Worksheet)wb.Worksheets[1];
//以上是打印第一个工作表//下面这是打印所有工作表
for (int i = 1; i <= wb.Worksheets.Count; i++) {Excel.Worksheet WS = (Excel.Worksheet)wb.Worksheets[i];
WS.PrintOutEx(1, 1, 1, false, "Microsoft XPS Document Writer", true, true, "C:/Users/Administrator/Desktop/"+i+".xps");
}//使用的是PrintOutEx函数来打印,
WS.PrintOutEx(1,1,1,false,"Microsoft XPS Document Writer", true, true, "C:/Users/Administrator/Desktop/1.xps");

PrintOutEx参数如下,第5个ActivePrint便可指定打印机名称,不写则默认打印机,第八个参数是打印名称,这里为了展示效果使用的xps打印机

可以看到最后一个参数,如果默认则打印整个工作表,指定区域方式:“A1:H10”

关于这些参数和函数都能在官方文档找到
https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/bb398734(v=vs.100)

附加:打印时预览配置

var app = new Excel.Application();
var book = app.Workbooks.Open(@"d:\1231.xlsx");
//获取基本预览样式
app.WindowState = Excel.XlWindowState.xlNormal;
app.Width = app.Height = 0;
//显示预览
app.Dialogs[Excel.XlBuiltInDialog.xlDialogPrint].Show();
app.Quit();

如果想获取打印机列表可以参考这个文档:
https://www.cnblogs.com/janes/archive/2011/03/15/1985143.html

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

看完了觉得不错就点个赞或者评论下吧,感谢!!!

如果本文哪里有误随时可以提出了,收到会尽快更正的

C#操作Excel数据读写/指定打印机打印相关推荐

  1. Python读写Excel数据(指定某行某列)

    Python读写Excel数据(指定某行某列) 在Python数据处理中,经常需要对Excel表格进行读写操作,本文的代码介绍了如何通过行与列的下标进行数据的读写:代码对数据格式有要求,读数据要求文件 ...

  2. c语言从excal读取字符串,C语言操作EXCEL文件(读写)

    C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...

  3. Pywin32操作Excel数据的类

    练习Pywin32操作Excel数据.学习https://blog.csdn.net/qdx411324962/article/details/44270455这篇博客后编写的内容.编写完成后进行测试 ...

  4. C#实战028:OleDb操作-Excel数据写入

    前面写了C#实战021:OleDb操作-新增Excel中的sheet工作表,接下来我们就要在新增的表中添加数据了,在网上找了很多方法,都没有OleDb对excel表操作批量操作,后来通过对mysql的 ...

  5. C语言操作EXCEL文件(读写)

    C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...

  6. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  7. Python读写操作Excel数据详解

    自从学了Python后就逼迫自己不用Excel,所有操作用Python实现.目的是巩固Python,与增强数据处理能力.这也是我写这篇文章的初衷.废话不说了,直接进入正题. 1.前期准备 1.1. 初 ...

  8. C#使用指定打印机打印Word,Excel等Office文件和打印PDF文件的代码

    http://www.cnblogs.com/xiachufeng/archive/2010/07/31/1789136.html 打印,是做开发的人的经久不变的话题. 今天,用实例代码,说明.NET ...

  9. python读写操作excel数据小应用

    '''今天教务老师给我发来了一堆excel表 需要我处理一些数据都是一些基础的数据,这是今年来同济参加夏令营的申请材料在我按部就班的处理了几个之后,觉得这样处理实在是效率太低下了,于是我就写了下面这个 ...

最新文章

  1. (time.h) 自己用
  2. 学习《apache源代码全景分析》之过滤器部分摘录
  3. PHP双码率视频云转码服务系统源码 m3u8切片秒切html5播放器 全开源
  4. python执行变量次_当脚本再次执行时需要一个变量来保留它的值(Python)
  5. python爬虫获取标签规则_Python爬虫之数据提取-selenium定位获取标签对象并提取数据...
  6. [ExtJS6]Combobox的值的绑定
  7. Spring在多线程中bean的注入问题
  8. docker Ubuntu系统中使用 powershell
  9. 完美解决PHP、AJAX跨域问题
  10. 浅谈 Mybatis 中的 ${ } 和 #{ }的区别
  11. 使用 Unbound 创建DNS服务器
  12. jsp之getParameterValues
  13. 小区广播机制(MIB、SIB)
  14. android充电线排序,安卓数据线分类有哪些
  15. ORACLE创建物化视图(on commit\on demand)
  16. CF1428F-Fruit Sequences
  17. 目标检测经典论文——YOLOv3论文翻译(纯中文版):YOLOv3:增量式的改进(YOLOv3: An Incremental Improvement)
  18. opening registry key Software\Javasoft\Java Runtime Environment
  19. isEmpty()的坑
  20. 【开发环境】Windows环境下Python开发环境 Pycharm Anaconda安装配置(无错完整)

热门文章

  1. 为不同的调制方案设计一个单载波系统(映射器-信道-去映射器)(Matlab代码实现)
  2. 抖音直播数据分析,通过千场直播深入解读直播间自然流量转化率
  3. 计算机毕业设计之车辆管理系统
  4. Discussion 1 某刀削面馆的模拟调研
  5. 嚼得菜根做得大事·《菜根谭》·七
  6. 就算有雷军强推,小米CC想讨年轻女性喜欢也不容易
  7. 闲鱼项目靠谱吗?小白入坑全指南!
  8. 初探富文本之富文本概述
  9. 网络恐怖袭击真实存在吗
  10. 【图像处理】python生成二维isotropic(各向同性)、anisotropic(各向异性) 高斯核