Code39 条形码

SpreadJS 支持通过 BC_CODE39 公式快速生成 Code39 条形码,适用于产品标识、库存管理、物流追踪等场景。Code39 条形码支持数字、大写字母和特殊符号,可根据业务需求自定义校验位、宽窄比、标签显示等参数,满足不同行业的编码规范要求。

概述 本 Demo 展示了如何使用 BC_CODE39 公式生成 Code39 条形码,并演示了不同参数配置的效果,包括默认配置、显示起始结束字符、添加校验位、调整宽窄比以及启用全 ASCII 模式。 实现思路 创建工作表并初始化基础数据,包含名称和编号两列 设置表头区域,合并单元格并添加标题 为第 3-5 行的数据单元格设置不同的 BC_CODE39 公式,展示各种参数配置 应用表格样式,设置行高、列宽、边框和对齐方式 代码解析 创建数据表格 这段代码创建了一个包含 3 行数据的数组,每行包含名称和编号。setArray 方法将数据批量写入工作表,从第 3 行第 1 列开始。 设置不同参数的条形码公式 这段代码为每行数据的第 3-7 列设置不同配置的 BC_CODE39 公式,所有公式都引用 C 列的值作为条形码编码数据: 第 3 列:使用默认参数 第 4 列:启用起始和结束字符显示(labelWithStartAndStopCharacter="true") 第 5 列:添加校验位(checkDigit="true") 第 6 列:设置宽窄比为 2(nwRatio=2) 第 7 列:启用全 ASCII 模式(fullASCII="true") 运行效果 表格显示 3 行数据,每行包含名称、编号和 5 种不同配置的 Code39 条形码 第 3 列显示默认配置的条形码 第 4 列显示包含起始和结束字符的条形码 第 5 列显示包含校验位的条形码 第 6 列显示宽窄比为 2 的条形码 第 7 列显示支持全 ASCII 字符集的条形码 API 参考 BC_CODE39 公式 主要参数说明: value:条形码编码内容,支持数字、大写字母及符号 '+', '-', '/', '$', '%', '*' color:条形码颜色,默认为 'rgb(0,0,0)' backgroundColor:背景颜色,默认为 'rgb(255, 255, 255)' showLabel:是否显示标签文本 labelPosition:标签位置 labelWithStartAndStopCharacter:是否在标签中显示起始和终止字符,默认为 false checkDigit:是否包含校验位,默认为 false nwRatio:宽条和窄条的比例,取值为 2 或 3,默认为 3 fullASCII:是否支持全 ASCII 字符集,默认为 false fontFamily:标签文本字体系列,默认为 'sans-serif' fontSize:标签文本字体大小,默认为 '12px' quietZoneLeft/Right/Top/Bottom:空白区大小
window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), {sheetCount: 1}); 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_CODE39(C' + (row + 1) + ')'); sheet.setFormula(row, 4, '=BC_CODE39(C' + (row + 1) + ',,,,,"true")'); sheet.setFormula(row, 5, '=BC_CODE39(C' + (row + 1) + ',,,,,,"true")'); sheet.setFormula(row, 6, '=BC_CODE39(C' + (row + 1) + ',,,,,,,2)'); sheet.setFormula(row, 7, '=BC_CODE39(C' + (row + 1) + ',,,,,,,,"true")'); } } function _setData(sheet) { var headers = [ [ '默认', '更改标签包含起始和结束字符', '更改校验位', '更改宽窄比', '更改全ASCII模式' ] ]; var dataArray = [ ['纸张', 6922266446146], ['书籍', 9787560044231], ['值可以包含一些符号', '1234+-#*'] ]; sheet.setArray(3, 1, dataArray); sheet.addSpan(1, 1, 2, 1); sheet.addSpan(1, 2, 2, 1); sheet.addSpan(1, 3, 1, 5); sheet.setValue(1, 1, '名称'); sheet.setValue(1, 2, '编号'); sheet.setValue(1, 3, 'Code39'); 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, 240); } sheet .getRange(1, 1, 2, 7) .foreColor('#000') .backColor('#FFF3CE') .setBorder(new GC.Spread.Sheets.LineBorder('orange', GC.Spread.Sheets.LineStyle.thin), {all: true}); sheet .getRange(1, 1, 5, 7) .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}); }
<!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; }