图像函数迷你图

使用 IMAGE 函数可以插入一个图像到单元格中,图片数据源必须是URL 或者base64字符串。

你可以使用IMAGE函数来创建一个图片:=IMAGE(URL,mode,height,width,clipX,clipY,clipHeight,clipWidth,vAlign,hAlign)。 此函数拥有以下参数: URL: 图片的URL,引用或者base64字符串。 mode: (可选) 数字类型,代表图像填充类型,可用选项: 保持长宽比填充 - 1 图片完全填充 - 2 原始尺寸填充- 3 定制尺寸填充 - 4 height: (可选) 如果mode是4,代表图像的高度。 width: (可选) 如果mode是4,代表图像的宽度。 clipX: (可选) 需要绘制到目标区域中的,image的矩形(裁剪)选择框的左上角 X 轴坐标。 clipY: (可选) 需要绘制到目标区域中的,image的矩形(裁剪)选择框的左上角 Y 轴坐标。 clipHeight: (可选) 需要绘制到目标区域中的,image的矩形(裁剪)选择框的高度。 clipWidth: (可选) 需要绘制到目标区域中的,image的矩形(裁剪)选择框的宽度。 vAlign: (可选) 这个值指代图像的垂直对齐方式。可选项: 顶部 - 0 居中 - 1 底部 - 2 hAlign: (可选) 这个值指代图像的水平对齐方式。可选项: 左边 - 0 水平居中 - 1 右边 - 2
window.onload = () => { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss")); initSpread(spread); } function initSpread(spread) { spread.suspendPaint(); spread.setSheetCount(2); var sheet = spread.getSheet(0); spread.options.allowDynamicArray = true; initSheet(sheet, applyImageFormula); var sheet2 = spread.getSheet(1); initSheet(sheet2, applyImageFormatter); spread.resumePaint(); } function applyImageFormula(sheet) { for (let i = 2; i < 17; i++) { sheet.setFormula(i, 0, '=IMAGE(F' + (i + 1) + ')'); } sheet.setColumnWidth(5, 0); } function applyImageFormatter(sheet) { for (let i = 2; i < 17; i++) { sheet.getCell(i, 5).formatter('=IMAGE(@)'); } } function initSheet(sheet, fnCallback) { sheet.suspendPaint(); sheet.addSpan(0, 0, 1, 6); sheet.getCell(0, 0).value("Employees List").font("17px Arial").backColor("#E8E8E8").vAlign(GC.Spread.Sheets.VerticalAlign.center); sheet.getRange(1, 0, 1, 6).font("bold 13px Arial").vAlign(GC.Spread.Sheets.VerticalAlign.center) .setBorder(new GC.Spread.Sheets.LineBorder("black", GC.Spread.Sheets.LineStyle.thin), { bottom: true }); sheet.setArray(1, 1, data); if (fnCallback) { fnCallback.apply(this, [sheet]); } sheet.getRange(2, 4, 15, 1).formatter('dd-MM-yyyy').hAlign(GC.Spread.Sheets.HorizontalAlign.center); sheet.getRange(2, 0, 15, 6).vAlign(GC.Spread.Sheets.VerticalAlign.center); for (var i = 1; i < 5; i++) { sheet.setColumnWidth(i, 160); } for (var i = 2; i < 17; i++) { sheet.setRowHeight(i, 55); } sheet.setRowHeight(0, 30); sheet.setRowHeight(1, 30); sheet.setColumnWidth(0, 80); sheet.addSpan(2, 7, 1, 5); sheet.setText(2, 7, "You can set image according to URL or base64"); sheet.getRange(2, 7, 2, 2).vAlign(GC.Spread.Sheets.VerticalAlign.center) .hAlign(GC.Spread.Sheets.HorizontalAlign.center); sheet.addSpan(3, 7, 2, 5); sheet.setFormula(3, 7, '=IMAGE("https://www.grapecity.com/spreadjs/demos/spread/source/logo-en.ico",4,50,150)'); sheet.resumePaint(); }
<!DOCTYPE html> <html lang="en"> <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/spread-sheets/styles/gc.spread.sheets.excel2013white.css"> <script src="$DEMOROOT$/zh/purejs/node_modules/@grapecity/spread-sheets/dist/gc.spread.sheets.all.min.js" type="text/javascript"></script> <script src="$DEMOROOT$/zh/purejs/node_modules/@grapecity/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="$DEMOROOT$/spread/source/data/image-sparkline.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" style="width:100%;height:100%"></div> </div> </body> </html>
.sample-tutorial { position: relative; height: 100%; overflow: hidden; } body { position: absolute; top: 0; bottom: 0; left: 0; right: 0; }