整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

SpreadJS 纯前端表格控件新特性 - 拖拽增强

拽增强(Drag-Fill Enhancements)是 SpreadJS 新版本的增强功能之一,当有许多单元格必须填充相似或一定顺序的数据或函数时,拖动填充数据将非常有用。尤其在某些情况下,数据并非典型的数字序列,可能包含了字符串、日期或其他数据类型,此时 SpreadJS拖动填充功能将发挥巨大的作用。

SpreadJS的拖动填充支持:

  • 按日期填充
  • 带有数字的字符串自动填充
  • 自定义填充列表

针对日期填充:无论您选定的日期数据是第一天、最后一天还是一个月的某一天,新的拖动填充增强都可以处理:

针对字符串填充:当字符串在开头或结尾包含数字时,拖动单元格将按特定规律自动填充,如字符串包含“Cell1”、“Cell2”、“Cell3”等规律时,拖动单元格将使用“Cell4”、“Cell5”等进行填充。

针对自定义填充列表:拖动填充还支持自定义列表作为填充源,如按特定规则的日期信息,或开发人员自定义的列表。

要使用内置列表填充单元格,只需设置默认日期的值就足够了:

var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
sheet.setValue(0, 0, 'Sunday');
sheet.setValue(1, 0, 'Monday');
var startRange = new GC.Spread.Sheets.Range(0, 0, 2, 1);
var fillRange = new GC.Spread.Sheets.Range(0, 0, 10, 1);
sheet.fillAuto(startRange, fillRange, {
 fillType: GC.Spread.Sheets.Fill.FillType.auto,
 series: GC.Spread.Sheets.Fill.FillSeries.column
});

要使用自定义列表,您需要定义列表名称,然后在初始化Spread实例时在Spread选项中设置它:

var customList = [
 ['Light', 'Sun', 'Moon', 'Star', 'Sky', 'Rain', 'Cloud'],
 ['Dog', 'Cat', 'Lion', 'Fish', 'Snake']
];
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), {customList: customList});
var sheet = spread.getActiveSheet();
sheet.setValue(0, 5, 'Sky');
sheet.setValue(1, 5, 'Rain');
var startRange = new GC.Spread.Sheets.Range(0, 5, 2, 1);
var fillRange = new GC.Spread.Sheets.Range(0, 5, 10, 1);
sheet.fillAuto(startRange, fillRange, {
 fillType: GC.Spread.Sheets.Fill.FillType.auto,
 series: GC.Spread.Sheets.Fill.FillSeries.column
});

应该注意的是,在执行拖动填充操作时,用户自定义列表的优先级更高。

以上就是 SpreadJS 拖拽增强的更新内容,要体验这些功能并开始学习SpreadJS,请点击文末了解更多访问 SpreadJS 产品官网!

关于 SpreadJS 纯前端表格控件

SpreadJS 是一款基于 HTML5 的纯前端电子表格控件,以“高速低耗、高度类似Excel、可无限扩展”为产品特色,提供移动跨平台和浏览器支持,同时满足 .NET、Java、App 等应用程序中的 Web Excel 组件开发、数据填报、在线文档、图表公式联动、类 Excel UI 设计等业务场景,为您带来亲切的 Excel 体验。SpreadJS 在数据可视化、Excel 导入导出、公式引用、数据绑定、框架集成等场景下无需大量代码开发和测试,极大降低了企业研发成本和项目交付风险。

INCC7.5高级技巧:利用Excel实现窗口控件拖拽。

大家好,今天我将演示如何将WINCC与Excel相结合,以实现批量数据显示的文件生成。

在AC画面中,我们可以看到L栏显示了一个报警字,它是一个十六位无符号报警字。接下来,我们将对报警字中的各个位进行操作。同时,我也创建了一个简单的列表。

在选择列表后,下方会出现一个十字标志。此时,我们可以按鼠标右键并将其移动到AC画面的窗口上。当鼠标变成十字形时,松开右键。此时,系统会提示我们插入复选框、选项组、多行文字组合框等。我们可以选择选项组并进行相应设置。

默认情况下,选项组已经被生成。同时,我们需要对其属性进行调整,将字体调大。我们还需要调整其大小,并为其分配一个变量。接下来,我们将报警字拖入画面中即可。

同样的方法,我们可以制作另一个类型的报警字。此时,我们需要右键点击并将其移动到AC画面中,选择一个复选框,并对其属性进行调整。我们可以将字体调整为十六号,并为其分配一个变量。

完成后,我们可以保存并运行该程序。此时,我们可以通过点击选择来确定报警字的位置,其中第0位表示1,第15位表示1,其余位均为0。此外,我们还可以进行连续选择,以使相应位变为1,同时使左侧的值变为0。此时,我们还可以进行输入。

我们可以输入第二位、第八位和第十三位的值。通过这种方式,我们可以将Excel和AC紧密结合起来,实现批量数据显示的文件生成。更多内容可以在AC课程中学习。

xBrowser是将基于Chromium的浏览器与Java应用程序集成,以处理和显示HTML5、CSS3、JavaScript、Flash等。

近日,JxBrowser v7.12发布啦!JAVA应用程序浏览器集成控件JxBrowser更新至7.12, 现在可以在Chromium 84上运行,并且在使用DOM和JavaScript-Java Bridge API时提供了许多新选项,点击文末“了解更多”下载最新版JxBrowser。

新增功能

Chromium 84

在这个Chromium构建中,一些与JxBrowser封装的功能已经被移除或改变,所以这个JxBrowser版本在公共API中引入了一些突破性的变化。

可信事件

com.teamdev.jxbrowser.dom.event.Event接口已经扩展了isTrusted()方法,允许检测事件是由用户操作产生的,还是通过EventTarget.dispatchEvent()创建/修改并发送的。

MouseEvent:页面位置

com.teamdev.jxbrowser.dom.event.MouseEvent接口已经扩展了pageLocation(),允许获取事件发生时鼠标光标在文档坐标系中的位置。

MouseEvent:页面位置

允许从com.teamdev.jxbrowser.dom.event.KeyEvent中获取键码的功能已经被重新设计为与DOM KeyboardEvent类似。我们为DOM键码引入了DomKeyCode枚举,并扩展了com.teamdev.jxbrowser.dom.event.KeyEvent的方法,允许获取DOM键码和一个代表与物理键相关联的UTF-8字符的字符串,如果它有打印表示的话。例如

document.addEventListener(EventType.KEY_PRESS, event -> {
    if (event instanceof KeyEvent) {
        KeyEvent keyEvent = (KeyEvent) event;
        DomKeyCode keyCode = keyEvent.domKeyCode();
        String character = keyEvent.character();
        System.out.println("DOM KeyEvent: keyCode=" + keyCode  + ", character=" + character);
    }
}, false);

JS可访问的Java类

JavaScript-Java Bridge API已经扩展了com.teamdev.jxbrowser.js.JsAccessibleClasses,它允许告诉人们特定类型的Java实例可以从JavaScript中访问。例如

JsAccessibleClasses.add(ArrayList.class, LinkedList.class);

Cookie SameSite

增加了SameSite cookie属性支持。

改进功能

  • 通过了在离屏渲染模式下检查 "MovementX和MovementY在鼠标事件中的变化 "的JS测试。
  • Frame.isMain()方法不再向Chromium引擎发送请求,以找出这个框架是否是浏览器中的主(顶层)框架。现在,这个信息会在创建一个Frame时提供,并缓存起来供进一步调用。
  • 现在不允许运行JxBrowser Chromium二进制文件中附带的Chromium可执行文件。JxBrowser所使用的Chromium二进制文件应该只供JxBrowser使用,用户不应该能够直接运行它并将其作为普通的Web浏览器应用程序使用。
  • 允许将JavaFX BrowserView嵌入到继承JFXPanel的容器中。例如
    JFXPanel fxPanel = new MyJFXPanel(); BrowserView view = BrowserView.newInstance(browser); fxPanel.setScene(new Scene(new BorderPane(view), 600, 600)); private static final class MyJFXPanel extends JFXPanel {}
  • TextFinder Javadoc已经扩展了更多的细节,包括文本搜索的工作方式,如何突出显示匹配,如何检测第一个匹配等等。
  • 默认情况下,Chromium会在二进制文件所在的目录下创建debug.log文件。在某些环境下,对这个目录的访问可能是被禁止的,操作系统可能会报告这种尝试。从这个版本开始,Chromium将不再创建debug.log文件,相应的日志信息将被重定向到JxBrowser日志中。
  • 现在,库中使用的Chromium构建是使用is_official_build=true标志构建的。官方Chromium构建会禁用Google Chrome官方构建中禁用的实验性学习配置。其中有一个实验性的功能在以前的JxBrowser版本中被启用了,就是页面冻结,可能会冻结网页并停止JavaScript的执行。因此,该库使用的Chromium引擎在内部功能的启用/禁用方面变得更接近官方Chromium构建。
  • 触发Windows审计失败的功能被禁用。这个问题是由于Chromium从Windows API中调用LogonUser()函数,并向其传递了一个空的密码。我们通过禁用试图使用空密码登录的功能来解决这个问题。这个变化不影响任何其他Chromium功能。

Bug修复

  • Chromium渲染进程崩溃时不显示 "Aw, snap"页面。
  • 在Windows上的离屏渲染模式下,JavaFX在7.9中引入的破损渲染。
  • 在Linux下,在硬件加速渲染模式下,隐藏和显示嵌入BrowserView的JFrame后不显示网页内容。
  • 离屏渲染模式下忽略了HTML5拖拽事件中的空数据味道,导致部分HTML5 DnD事件根本无法工作。
  • 离屏渲染模式下从文件系统拖动文件到Swing BrowserView实例时出现NullPointerException错误。
  • 在离屏渲染模式下,在显示主舞台后,用嵌入式BrowserView实例显示JavaFX场景时,出现NullPointerException错误。
  • CookieStore没有保存带有未指定SameSite属性的Cookie。
  • 当在PDF浏览器中右击时,ShowContextMenuCallback没有被调用。
  • 在使用NVidia GeForce 1650和430.64驱动版本的Linux上,离屏渲染不工作。
  • JavaScript-Java Bridge功能不能调用标有@JsAccessible注解的Java方法,如果有其他方法与之同名。
  • 当引擎实例在Incognito模式下运行时,拼写检查器字典没有被配置。
  • 在macOS上SWT的硬件加速渲染模式下,打印预览对话框的渲染中断。
  • 在macOS上SWT的离屏渲染模式下,打印预览对话框不显示。
  • 在Windows和Linux上的硬件加速渲染模式下,在网页上右击Flash时,默认的Swing BrowserView上下文菜单不可见。
  • 在macOS上,浏览器无法调整到小于300px的大小。
  • EventType.DOUBLE_CLICK的DOM事件监听器从未被调用。
  • 在离屏渲染模式下,EnterMouseCallback和ExitMouseCallback没有被调用。在Windows和Linux的硬件加速渲染模式下,EnterMouseCallback无法被调用,因为它被Chromium引擎忽略了。
  • 在离屏渲染模式下,SWT BrowserView组件在Eclipse的Part on tab开关中不可见。
  • 在SWT中打印当前加载的网页为PDF时,默认保存文件名错误。
  • 在禁用Chromium流量的情况下,在已加载网页的输入栏中输入一些文本时,拼写检查器初始化失败。
  • 在Windows的离屏渲染模式下,自定义CSS光标模糊。
  • 在Windows的硬件加速渲染模式下,在SplitPane中添加/删除JavaFX BrowserView时出现黑色闪烁。
  • 在Windows的离屏渲染模式下,当显示/隐藏BrowserView时,随机出现黑色矩形闪烁。
  • 注入到JavaScript中的Java对象中标有@JsAccessible注解的方法在关闭Browser时被多调用一次。
  • 通过window.close()JavaScript函数关闭Swing BrowserView弹出式实例时出现的IndexOutOfBoundsException错误。
  • 当加载一个SSL证书无效的HTTPS网页时,ShowNetErrorPageCallback回调没有被调用。
  • 在离屏渲染模式下,不能将焦点设置为位于不同域的IFRAME内的HTML输入字段。
  • 恢复了对Firebase云消息的支持。
  • v7.8之后重新引入了macOS和Windows上的Widevine功能。
  • 在离屏渲染模式下,不同的鼠标移动事件的MouseEvent.moveX和MouseEvent.moveY属性应该是不同的。
  • macOS上mach_port功能相关的JNI中出现多个错误导致JVM崩溃。

如果您对jxbrowser感兴趣,可以点击下方“了解更多”了解具体授权和使用机制。