1.不废话、不用vip、不吸粉,只为单纯的传播技术。
2.开发环境:VS2019.
3.点击项目-->管理NuGet程序包.搜索框输入Spire.XLS,点击Payway.Spire点击安装,点击同意,安装成功.(该步骤已弃用,往下翻,看最新更新方法)
4.然后你就会在你的解决方案的引用下看见这个:
5.这三段代码必须要:
Spire.Xls.Workbook workbook = new Spire.Xls.Workbook();
workbook.LoadFromFile(@"D:\Documents\test1.xlsx");
Spire.Xls.Worksheet sheet = workbook.Worksheets[0];//根据你自己要修改的文件来.
6.插入空白行,然后复制你想要的单元格格式:
sheet.InsertRow(fillDataStartRow);//插入空白行
sheet.Range["A1"].Style = sheet.Range["B1"].Style;//复制单元格格式,这里表示把单元格A1的格式复制给A2.这样就不用我们自己去定义格式了,因为很多时候自己需要,Excel模板已经做好了,你只需要从后台把数据拿到,然后填充到Excel中即可.所以一般表格需要空一行作为格式的复制对象.如下图:
7. 填充数据:
sheet.Range["A1"].Value2 = dataTable.Rows[i][j];//dataTable是自己造的数据,这句代码就是向单元格A1填充数据.
8.最后别忘了保存文档,将内存中的数据写入到文件.
workbook.SaveToFile(@"D:\Documents\test12.xlsx");
9.加载刚刚生成的文档,再打印.
Workbook workbook = new Workbook();
workbook.LoadFromFile(fileName);
//获取第一个Excel工作表
Worksheet sheet = workbook.Worksheets[0];
//设置打印纸张大小
sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
//设置打印方向(这是设置纸张的方向为横向)
sheet.PageSetup.Orientation = PageOrientationType.Landscape;
//设置打印对话框属性
PrintDialog dialog = new PrintDialog();
dialog.AllowPrintToFile = true;
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
//设置单面打印
dialog.PrinterSettings.Duplex = Duplex.Simplex;
//设置打印份数
dialog.PrinterSettings.Copies = 1;
//打印文档
workbook.PrintDialog = dialog;
PrintDocument pd = workbook.PrintDocument;
//这是设置打印文档的方向为横向(若为纵向打印则两步都需要改)
pd.DefaultPageSettings.Landscape = true;
PrintController printController = new StandardPrintController();
pd.PrintController = printController;
pd.Print();
10.至此,横向打印,不限纸张,不需要安装Office的打印完美解决.某些个看个技术文章还要vip的真的想吐.我始终认为技术的交流应该少些障碍.特别是人为的.现在一堆乱七八糟的下载真T么恶心.不用破解照样解决问题.
自己看看这PT,成啥样了:
无语至极...
2022-10-24更新:
现在可直接使用最新版(滑稽):
直接搜索Spire.XLS。如下图:
测试了一下,没有评估字样了。一般需求,免费版足矣,更多企业级需求还请联系官方购买正版。
测试代码,很少,拷过去改下xlsx文件路径就能打印成功。
using Spire.Xls;
using System.Drawing.Printing;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Workbook workbook = new Workbook();
workbook.LoadFromFile(@"D:\test1.xlsx");
//获取第一个Excel工作表
Worksheet sheet = workbook.Worksheets[0];
//设置打印纸张大小
sheet.PageSetup.PaperSize = PaperSizeType.PaperA4;
//设置打印方向(这是设置纸张的方向为横向)
sheet.PageSetup.Orientation = PageOrientationType.Landscape;
//设置打印对话框属性
PrintDialog dialog = new PrintDialog();
dialog.AllowPrintToFile = true;
dialog.AllowCurrentPage = true;
dialog.AllowSomePages = true;
//设置单面打印
dialog.PrinterSettings.Duplex = Duplex.Simplex;
//设置打印份数
dialog.PrinterSettings.Copies = 1;
//打印文档
workbook.PrintDialog = dialog;
PrintDocument pd = workbook.PrintDocument;
//这是设置打印文档的方向为横向(若为纵向打印则两步都需要改)
pd.DefaultPageSettings.Landscape = true;
PrintController printController = new StandardPrintController();
pd.PrintController = printController;
pd.Print();
}
}
}
原文件:
打印出来的文件:
完结,撒花!