C#编辑、打印Excel文件不依赖Office

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();

        }
    }
}
 

原文件:

打印出来的文件:

完结,撒花! 

  • 6
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 10

打赏作者

daboluo@Niko

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值