Codabar 条形码

SpreadJS 支持通过 BC_CODABAR 公式在单元格中直接生成 Codabar 条形码。Codabar 是一种广泛应用于血库管理、快递服务和会员卡管理等场景的一维条形码,支持数字 0-9 以及特殊符号 +、-、/、$、.、: 等字符。

概述 本 Demo 展示了如何使用 BC_CODABAR 公式在 SpreadJS 中创建 Codabar 条形码。Demo 演示了三种不同的条形码配置:默认配置、添加校验位以及修改宽窄比,帮助用户理解条形码公式的参数使用方式。 实现思路 创建工作簿并获取活动工作表 设置表格基础数据(名称和编号列) 使用 BC_CODABAR 公式为三列数据生成不同配置的条形码 设置表格样式,包括单元格合并、边框和对齐方式 代码解析 设置条形码公式 这段代码为每行数据生成三种不同配置的 Codabar 条形码: 第 3 列:使用默认配置,只传入编码值 第 4 列:通过第 6 个参数 checkDigit 设置为 "true",添加校验位 第 5 列:通过第 7 个参数 nwRatio 设置为 "2",修改宽窄条比例为 2:1 注意: BC_CODABAR 公式中的 nwRatio 参数只支持 2 或 3 两个值,默认为 3。 运行效果 表格显示三列 Codabar 条形码,分别展示不同参数配置的效果 第一列条形码使用默认配置生成 第二列条形码包含校验位 第三列条形码使用不同的宽窄比(2:1) 所有条形码会根据 C 列的编号值自动编码显示 API 参考 BC_CODABAR 公式 主要参数说明: value:条形码编码内容,只能包含数字 0-9 和特殊符号 +、-、/、$、.、: color:条形码颜色,默认为 'rgb(0,0,0)' backgroundColor:条形码背景颜色,默认为 'rgb(255,255,255)' showLabel:是否显示标签文本 labelPosition:标签位置 checkDigit:是否包含校验位,默认为 false nwRatio:宽窄条比例,只允许为 2 或 3,默认为 3
window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), {sheetCount: 2}); initSpread(spread); }; function initSpread(spread) { var sheet = spread.getSheet(0); spread.suspendPaint(); _initBasicSheet(sheet); spread.resumePaint(); } function _initBasicSheet(sheet) { sheet.name('customSheet'); _setData(sheet); _setStyle(sheet); for (var row = 3; row < 6; row++) { sheet.setFormula(row, 3, '=BC_CODABAR(C' + (row + 1) + ')'); sheet.setFormula(row, 4, '=BC_CODABAR(C' + (row + 1) + ',,,,,"true")'); sheet.setFormula(row, 5, '=BC_CODABAR(C' + (row + 1) + ',,,,,,"2")'); } } function _setData(sheet) { var headers = [['默认', '更改校验位', '更改宽窄比']]; var dataArray = [ ['笔记本', 6935205311092], ['纸张', 6922266446146], ['值可以包含字母和一些符号', 'A1234+-/.$A'] ]; sheet.setArray(3, 1, dataArray); sheet.addSpan(1, 1, 2, 1); sheet.addSpan(1, 2, 2, 1); sheet.addSpan(1, 3, 1, 3); sheet.setValue(1, 1, '名称'); sheet.setValue(1, 2, '编号'); sheet.setValue(1, 3, 'Codabar码'); sheet.setArray(2, 3, headers); } function _setStyle(sheet) { sheet.setColumnWidth(0, 20); for (var row = 3; row < 6; row++) { sheet.setRowHeight(row, 100); } for (var col = 1; col < 8; col++) { sheet.setColumnWidth(col, 200); } sheet .getRange(1, 1, 2, 5) .foreColor('#000') .backColor('#FFF3CE') .setBorder(new GC.Spread.Sheets.LineBorder('orange', GC.Spread.Sheets.LineStyle.thin), {all: true}); sheet .getRange(1, 1, 5, 5) .vAlign(GC.Spread.Sheets.VerticalAlign.center) .hAlign(GC.Spread.Sheets.HorizontalAlign.center) .setBorder(new GC.Spread.Sheets.LineBorder('orange', GC.Spread.Sheets.LineStyle.medium), {outline: true}); sheet.getRange(1, 1, 5, 1).wordWrap(true); }
<!doctype html> <html style="height:100%;font-size:14px;"> <head> <meta name="spreadjs culture" content="zh-cn" /> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" type="text/css" href="$DEMOROOT$/zh/purejs/node_modules/@grapecity-software/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/zh/purejs/node_modules/@grapecity-software/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/zh/purejs/node_modules/@grapecity-software/spread-sheets-barcode/dist/gc.spread.sheets.barcode.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/zh/purejs/node_modules/@grapecity-software/spread-sheets-resources-zh/dist/gc.spread.sheets.resources.zh.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/spread/source/js/license.js" type="text/javascript"></script> <script src="app.js" type="text/javascript"></script> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <div class="sample-tutorial"> <div id="ss" class="sample-tutorial"></div> </div> </body> </html>
.sample-tutorial { position: relative; height: 100%; overflow: hidden; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }