示例要点

本文介绍如何通过Java程序打印Excel工作表。可通过以下方法打印:

  1. 默认打印机打印
  2. 指定打印机打印

程序环境

  • spire.xls.jar
  • JDK版本要求1.6.0及以上的高版本
  • IDEA

Jar文件导入

方法1:手动下载jar包导入。下载jar包,并解压到指定路径,将该路径下lib文件夹下的jar文件导入java程序;

方法2Maven程序中配置pom.xml文件导入,如下配置:

<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>3.11.2</version>
</dependency>
</dependencies>

完成配置后,导入jar。Eclipse中的导入方法可参考教程文档

jar导入效果图:

Java代码

1. 默认打印机打印

import com.spire.xls.*;

import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob; public class Print {
public static void main(String[] args) {
//加载excel工作簿
Workbook workbook = new Workbook();
workbook.loadFromFile("test.xlsx"); //创建 PrinterJob对象
PrinterJob printerJob = PrinterJob.getPrinterJob(); //指定打印页面为默认大小和方向
PageFormat pageFormat = printerJob.defaultPage(); //设置相关打印选项
Paper paper = pageFormat.getPaper();
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
pageFormat.setPaper(paper);
printerJob.setCopies(1);
printerJob.setPrintable(workbook, pageFormat); //执行打印
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}

2. 指定打印机打印

import com.spire.xls.*;

import javax.print.PrintService;
import java.awt.print.PageFormat;
import java.awt.print.Paper;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob; public class Print {
public static void main(String[] args) throws Exception {
//加载excel工作表
Workbook workbook = new Workbook();
workbook.loadFromFile("test.xlsx"); //创建 PrinterJob对象
PrinterJob printerJob = PrinterJob.getPrinterJob(); //指定打印机
PrintService myPrintService = findPrintService("\\\\192.168.1.104\\HP LaserJet P1007");
printerJob.setPrintService( myPrintService); //指定打印页面为默认大小和方向
PageFormat pageFormat = printerJob.defaultPage(); //设置相关打印选项
Paper paper = pageFormat.getPaper();
paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight());
pageFormat.setPaper(paper);
printerJob.setCopies(1);
printerJob.setPrintable(workbook, pageFormat); //执行打印
try {
printerJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
} //通过打印机名称获取打印服务
private static PrintService findPrintService(String printerName) {
PrintService[] printServices = PrinterJob.lookupPrintServices();
for (PrintService printService : printServices) {
if (printService.getName().equals(printerName)) {
return printService;
}
}
return null;
}
}

推荐阅读:

1. Java 打印Word

Java打印Word文档 (1)

Java打印Word文档 (2)

2. Java 打印PDF

Java 打印Excel工作表的更多相关文章

  1. Java 复制Excel工作表

    本文归纳了关于Java如何复制Excel工作表的方法,按不同复制需求,可分为: 1. 复制工作表 1.1 在同一个工作簿内复制工作表 1.2 在不同工作簿间复制工作表 2. 复制指定单元格数据 对于复 ...

  2. C#中如何在Excel工作表创建混合型图表

    在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...

  3. C#将一个excel工作表根据指定范围拆分为多个excel文件

    C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...

  4. C# 原样复制excel工作表

    在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文 ...

  5. 使用宏命令撤销EXCEL工作表保护

    EXCEL工作表编辑资料,设置了工作表保护后,不能对表格进行插入删除操作.如果没有密码,很简单:工具-选项—工作表保护——撤消工作表保护 就可以了.如果忘记密码,如下操作: 1. 打开文件 2. 工具 ...

  6. C# 如何合并Excel工作表

    文档合并.拆分是实现文档管理的一种有效方式.在工作中,我们可能会遇到需要将多个文档合并的情况,那如何来实现呢,本文将进一步介绍.关于拆分Excel工作表,可参见这篇文章--C#如何拆分EXCEL工作表 ...

  7. 电脑右键新建excel工作表,但是扩展名是.xls,而不是.xlsx

    怀疑是因为之前安装了wps,然后又卸载了,导致的.上网查阅,如下: excel默认新建xls 不是我的问题 Excel 2010/2013/2016在鼠标右键新建xls或xlsx文件后,打开报错“无法 ...

  8. C# 合并Excel工作表

    文档合并.拆分是实现文档管理的一种有效方式.在工作中,我们可能会遇到需要将多个文档合并的情况,那如何来实现呢,本文将进一步介绍.关于拆分Excel工作表,可参见这篇文章——C#如何拆分EXCEL工作表 ...

  9. 移除Excel工作表密码保护小工具含C#源代码

    有朋友发了个Excel.xlsx文件给我,让我帮忙看看里面是怎么做出来的.打开审阅后发现,每个Excel工作表都添加了密码保护: 看不到里面的隐藏列和公式等等,感觉很神秘.于是研究了一下Excel文件 ...

  10. C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】

    C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...

随机推荐

  1. java实现朴素rpc

    五层协议中,RPC在第几层? 五层协议 应用层 传输层 网络层 链路层 物理层 我不知道,我要去大气层! 远程过程调用(RPC),比较朴素的说法就是,从某台机器调用另一台机器的一段代码,并获取返回结果 ...

  2. 【干货】前端开发VUE实例

    最近公司招聘前端开发----VUE方向. 技术面试是必不可少的,发现大多数人应该没有掌握其开发技术,今天就大概总结一下 一.准备工作 需要用到VSCODE最新版,nodejs,vue2.0(现在vue ...

  3. matlab快速入门笔记

    命名规则: clc:清除命令行的所有命令 clear all:清除所有工作区的内容 注释:两个% + 空格 %% matlab的数据类型 1.数字 3 3 * 5 3 / 5 3 + 5 3 - 5 ...

  4. pta乙级1033(C语言)散列表解法

    #include"stdio.h" #include"string.h" int main() { int flag=1; char w[100010],ch[ ...

  5. P7073 [CSP-J2020] 表达式

    Problem 考察算法:后缀表达式建树,优化. 题目简述 读入一个后缀表达式,由 \(\&,\mid,!\) 三种运算和操作数构成. 有 \(q\) 次询问,每次输入一个下标 \(i\) , ...

  6. react 16.3生命周期更新解析

    React v16.3虽然是一个小版本升级,但是却对React组件生命周期函数有巨大变化. 文章梗概 新版本+2-3个生命周期. 为什么增加那2个生命周期? 为什么减去之前3个生命周期? 相关知识延伸 ...

  7. vue本地能够访问图片,打包项目之后图片无法访问

    //template中 <img :src="boxHerf" /> //js let boxHerf = ref('/src/assets/images/contai ...

  8. 解决IDEA中.properties文件中文变问号(???)的问题(已解决)

    问题背景 构建SpringBoot项目时,项目结构中有一个application.properties文件.这个项目是Spring Boot一个特有的配置文件.内容如下(我写了一些日志的配置): 写到 ...

  9. Intellij IDEA开发Scala程序

    前言 Intellij IDEA是一款功能强大的集成开发环境(IDE),可用于开发各种编程语言,包括Scala.Scala是一种功能强大的静态类型编程语言,它结合了面向对象和函数式编程的特性. 本文我 ...

  10. C语言一辆卡车撞人逃逸。现场三人目击事件,只记下车的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家说:四位的车号正好是一个整数的平方

    #include <stdio.h> #include <math.h> void main() { int a, b, c, d, n, h; double t; for ( ...