excelOpen

Version 24.3.9111


excelOpen


为现有 Excel 工作簿创建可读句柄。

必需的参数

  • file: Excel 工作簿在磁盘上的完整路径,包括文件名。

可选的参数

  • version: 目标工作簿的 Excel 版本。 允许的值为AUTO9597-20032007。 默认为自动

输出属性

  • handle: 对 Excel 数据的可读句柄引用。 该句柄可供后续操作使用,如下例所示。

示例

此示例打开磁盘上的现有 Excel 工作簿,使用 excelGet 操作从特定单元格读取数据,关闭 Excel 工作簿,并将该数据作为新的输出文件推送。

<!-- 创建操作的输入项并将其传入 -->
<arc:set attr="excel.file" value="C:\Temp\movies.xlsx" />
<arc:call op="excelOpen" in="excel" out="result" >
  <!-- 解析 excelOpen 中的句柄以在 excelGet 中使用 -->
  <arc:set attr="get.handle" value="[result.handle]" />
  <arc:set attr="get.sheet" value="film" />
  <arc:set attr="get.version" value="2007" />
  <arc:set attr="get.map:favoritemovie" value="A2" />
  <arc:set attr="get.map:favoritemovieyear" value="B2" />
  <!-- 在excelOpen内部调用excelGet来使用句柄-->
  <arc:call op="excelGet" in="get" out="out">
    <!-- 根据从 Excel 工作表读取的数据创建一些输出数据和文件 -->
    <arc:set attr="output.data" value="My favorite movie is [out.favoritemovie] and it came out in [out.favoritemovieyear]." />
    <arc:set attr="output.filename" value="results.txt" />
    <!-- 使用 arc:finally 关键字最后执行句柄的关闭 -->
    <arc:finally>
      <!-- 调用excelClose关闭句柄-->
      <arc:call op="excelClose" in="excel" out="close">
        <!-- 检查以确保句柄已关闭,如果未关闭则抛出错误 -->
        <arc:exists attr="close.success" >
          <arc:else>
            <arc:throw code="CloseFailed" desc="The handle was not closed successfully." />
          </arc:else>
        </arc:exists>
      </arc:call>
    </arc:finally>
  </arc:call>
</arc:call>
<!-- 将输出项作为文件推送出去 -->
<arc:push item="output" />

注意:当使用excelOpen时,请务必在脚本末尾使用excelClose操作关闭句柄,以避免通过打开的句柄泄漏内存。