小编Ale*_*lex的帖子

当用户删除单元格内容时,如何获取单元格的oldValue?在这种情况下,e.oldValue未定义

当用户删除内容时,如何获取单元格的oldValue?

这样做的目的是防止新手用户使用共享电子表格时意外删除/编辑.只应更新空单元格而不发出警告.

它在编辑单元格的内容时起作用.但是当删除单元格内容时,oldValue未定义 - 单元格具有内容.

PS.我知道这只适用于单细胞编辑 - 我检查了范围宽度/高度== 1,但对于值删除也是如此.(选择单元格,按删除)

我的测试代码如下:

function onEdit(e) {
  Logger.log("onEdit called") 
  Logger.log("e.oldValue: %s", e.oldValue) 
  Logger.log("e.value: %s", e.value)
  Logger.log(e) 
  if (!("value" in e) || (e.oldValue != undefined)) {
     if (shouldRevertChange(e.oldValue, e.range.getValue())) {
        e.range.setValue(e.oldValue);
     }
   }
}

function shouldRevertChange(oldValue, newValue) {
  var ui = SpreadsheetApp.getUi();

  var result = ui.alert(
     'Was this a mistake?',
    'You changed the contents of a cell. Old value: '+oldValue+', new value: '+newValue+'. Do you want to revert the change?',
      ui.ButtonSet.YES_NO);

  // Process the user's …
Run Code Online (Sandbox Code Playgroud)

google-sheets google-apps-script

6
推荐指数
1
解决办法
554
查看次数

Java - 从另一个XML + XSD生成XML

我有一个从另一个XML文件生成XML文件的问题.我的用例是这样的:

  1. 我有一个XML文件,格式如下:

    <tag1>
        <tag2>value2</tag2>
        <tag3>value3_1, value3_2, value3_3</tag3>
        <tag4>
           <tag4_1>value4_1</tag4_1>
           <tag4_2>value4_2</tag4_2>
        </tag4>
    </tag1>
    
    Run Code Online (Sandbox Code Playgroud)

是的,我知道它很乱,但这就是我得到它的方式.

  1. 我还有一个XSD架构,我用它来使用JAXB生成相应的Java类(这可以正常工作).

我现在需要的是一种从原始XML文件创建另一个XML文件的方法,具有以下格式:

<element name="tag1.tag2">
     <value>value2</value>
</element>
<element name="tag1.tag3">
     <value>value3_1, value3_2, value3_3</value>
</element>
<element name="tag1.tag4.tag4_1"> 
     <value>value4_1</value>
</element>
<element name="tag1.tag4.tag4_2"> 
     <value>value4_2</value>
</element>
Run Code Online (Sandbox Code Playgroud)

如果没有自己的解析/创建机制,您对我应该使用哪些框架/库有任何建议吗?

我在考虑使用XSLT,但我没有任何经验...

谢谢!

xml xslt xsd

3
推荐指数
1
解决办法
1832
查看次数

标签 统计

google-apps-script ×1

google-sheets ×1

xml ×1

xsd ×1

xslt ×1