ACSプラグインで.xlsxをバッチダウンロードする その1

原文はこちら
[HOW TO USE PLUGIN/cldownload with Colheadings and usecollabels ACS](https://www.ibm.com/support/pages/node/6567579)

## 概要

ACSに標準付属のプラグイン：cldownload を使用してdb2 for i テーブルをエクセル xlsx ファイルにダウンロード（エクスポート）する機能です。
cldownloadプラグインはWINDOWSから実行する方法とIBM i の5250（そのほか）からRUNJAVAコマンドで実行する方法とがあります。

### カラムヘッダーの指定方法
以下の指定によりダウンロードしたエクセル xlsx ファイルの第一行目にカラムヘッダーを含めない・含める、含める場合の表示情報の指定ができます。

***①/colheadings=0　カラムヘッダーをダウンロードしない***
![image-20220715123416-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/8863c7e9-2ee3-4bbc-98c0-84b32ae416a2.png)

上記ではカラムヘッダーが含まれません。

***②/usecollabels カラムラベルをヘッダーとしてダウンロードする***
![image-20220715123148-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/95946985-f0a1-4f5a-ae29-e2c881fa85c4.png)

上記のようにDDSのカラムラベルがヘッダーとしてダウンロードされます。

***③/colheadings=1 /usecollabels DDSのCOLHDGをヘッダーとしてダウンロードする***
![image-20220715122719-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/cac90d19-e7a4-4f8b-938a-3cf06493caa5.png)

DDSで指定しているCOLHDGがダウンロードされます。

***④/colheadings=1 DDSの別名をヘッダーとしてダウンロードする***

![image-20221005104543-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/406bc031-c0fb-4400-afcd-6386de6c16f6.png)

### 当資料のサンプルDb2 for i テーブルの入手元SAVF

一番上の[元記事](https://www.ibm.com/support/pages/node/6567579)の中に [CUSTALL SAVF](https://www.ibm.com/support/pages/system/files/inline-files/custallpf.savf) へのリンクがあります。
このCUSTALL SAVFをIBM i OS上に復元すると、QIWS/QCUSTCDTというサンプルテーブルが復元されます。元記事ではQCSTCDTテーブルをMYLIB.CUSTALL (MYLIB/CUSTALL)にコピーして使用しています。

## Windowsからの実行サンプル

※以下の例では ACSは C:\*\IBM\ClientSolutions\ にインストールされている前提です。

### ①/colheadings=0
```
  C:\*\IBM\ClientSolutions\acsbundle.jar

  java -Xmx1024m  -Dcom.ibm.iaccess.dataxfer.SheetId=%1$s 
  -jar acsbundle.jar /PLUGIN=cldownload /system=MySYSTEM 
  /hostfile=MYLIB/CUSTALL /clientfile=/Temp/test.xlsx  
  /colheadings=0
```
![image-20220715123416-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/025b6197-626a-49fe-addb-62d4e30a010e.png)

### ②/usecollabels
```
 C:\*\IBM\ClientSolutions\acsbundle.jar

 java -Xmx1024m  -Dcom.ibm.iaccess.dataxfer.SheetId=%1$s
 -jar acsbundle.jar /PLUGIN=cldownload /system=MySYSTEM 
/hostfile=MYLIB/CUSTALL /clientfile=/Temp/test.xlsx 
/usecollabels
```
![image-20220715123148-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/4fe2b622-6562-4eee-9107-fbf52a9fcbfe.png)

### ③/colheadings=1  /usecollabels
```
 C:\*\IBM\ClientSolutions\acsbundle.jar
 
java -Xmx1024m  -Dcom.ibm.iaccess.dataxfer.SheetId=%1$s 
-jar acsbundle.jar /PLUGIN=cldownload /system=MySYSTEM 
/hostfile=MYLIB/CUSTALL /clientfile=/Temp/test.xlsx  
/colheadings=1  /usecollabels
```
![image-20220715122719-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/cac90d19-e7a4-4f8b-938a-3cf06493caa5.png)

### ④/colheadings=1
```
C:\*\IBM\ClientSolutions\acsbundle.jar

java -Xmx1024m  -Dcom.ibm.iaccess.dataxfer.SheetId=%1$s 
-jar acsbundle.jar /PLUGIN=cldownload /system=MySYSTEM 
/hostfile=MYLIB/CUSTALL /clientfile=/Temp/test.xlsx  
/colheadings=1
```
![image-20221005104543-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/406bc031-c0fb-4400-afcd-6386de6c16f6.png)

## IBM i CLコマンドから

5250画面のコマンドラインのほかにも、ACS SQLスクリプト実行画面からCL: として実行もできますね。

実は今実機触れない環境なのですが、以下を実行するには　CD /QIBM/proddata/access/acs/base や事前に左記にパスを通しておかないとだめかもしれません。
```
RUNJVA CLASS('/QIBM/proddata/access/acs/base/acsbundle.jar')
PARM('/PLUGIN=cldownload' '/SYSTEM=localhost'  '/
hostfile=MYBLIB/CUSTALL' '/clientfile=/home/MYUSER/
Testscustall.xlsx' '/colheadings=0')
```
```
RUNJVA CLASS('/QIBM/proddata/access/acs/base/acsbundle.jar')
PARM('/PLUGIN=cldownload' '/SYSTEM=localhost'  '/
hostfile=MYBLIB/CUSTALL' '/clientfile=/home/MYUSER/
Testscustall1.xlsx' '/colheadings=1')
```
```
 RUNJVA CLASS('/QIBM/proddata/access/acs/base/acsbundle.jar')
 PARM('/PLUGIN=cldownload' '/SYSTEM=localhost' '/
 hostfile=MYBLIB/CUSTALL' '/clientfile=/home/MYUSER/
 Testscustall2.xlsx' '/colheadings=1' '/usecollabels') 
```

IBM i コマンドラインからのマニュアルのサンプルには、②/usecollabelsが無いのです？できない理由はないと思うので後日確認してみます。