代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
生成条形码并将条形码插入进excel中
作者:
恺哥
/ 发布于
2013/10/11
/
612
动态生成条形码并将条形码插入进excel中; 条形码生成利用barcode4j; 操作excel利用poi;
package k.barcode; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.Picture; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.util.IOUtils; import org.krysalis.barcode4j.impl.code39.Code39Bean; import org.krysalis.barcode4j.output.bitmap.BitmapCanvasProvider; import org.krysalis.barcode4j.tools.UnitConv; public class InsExcel { private POIFSFileSystem fs; private HSSFWorkbook wb; private HSSFSheet sheet; private HSSFRow row; private FileInputStream input; private String[] excleTitle; public static void main(String[] args) { //生成条码 String bcVal = InsExcel.makeBarcodeValue(); //生成条码图片 String bcPath = InsExcel.makeBarcode(bcVal); //插入excel InsExcel.insBarcodeInExcel(bcPath); } //生成条码值 public static String makeBarcodeValue(){ return "A"+System.currentTimeMillis(); } //生成条码文件至临时目录,并返回生成图片的路径信息 public static String makeBarcode(final String barcodeValue){ //存放条码图片的路径 final String barcodePicPath = "d:\\barcode\\"; try { //Create the barcode bean Code39Bean bean = new Code39Bean(); final int dpi = 150; //Configure the barcode generator bean.setModuleWidth(UnitConv.in2mm(1.0f / dpi)); //makes the narrow bar //width exactly one pixel bean.setWideFactor(3); bean.doQuietZone(false); //Open output file File outputFile = new File(barcodePicPath+barcodeValue+".png"); OutputStream out = new FileOutputStream(outputFile); try { //Set up the canvas provider for monochrome JPEG output BitmapCanvasProvider canvas = new BitmapCanvasProvider( out, "image/png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0); //Generate the barcode bean.generateBarcode(canvas, barcodeValue); //Signal end of generation canvas.finish(); } finally { out.close(); } } catch (Exception e) { e.printStackTrace(); } return barcodePicPath+barcodeValue+".png"; } public static void insBarcodeInExcel(String barcodePic){ FileInputStream input = null; try { input = new FileInputStream(new File("d:\\base.xls"));// excelPath,Excel // 文件 的绝对路径 POIFSFileSystem fs = new POIFSFileSystem(input); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(1); HSSFRow row = sheet.getRow(0);// 得到标题的内容对象。 System.out.println(row.getCell(15).toString()); InputStream inputStream = new FileInputStream(barcodePic); byte[] bytes = IOUtils.toByteArray(inputStream); int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_PNG); inputStream.close(); CreationHelper helper = wb.getCreationHelper(); Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = helper.createClientAnchor(); anchor.setCol1(15); anchor.setRow1(0); Picture pict = drawing.createPicture(anchor, pictureIdx); pict.resize(); FileOutputStream fileOut = new FileOutputStream("d:\\base.xls"); wb.write(fileOut); fileOut.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (input != null) { input.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
恺哥
贡献的其它代码
(
5
)
.
使用jquery获得当前html页面源码
.
利用barcode4j生成条形码
.
生成条形码并将条形码插入进excel中
.
在客户端获取用户的系统信息
.
检查数组是否有重复元素
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3