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

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

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值