プロデルでネ申Excel作成を自動化したい #1
セル内の文字列の置換~その1
前回ではセル内の文字列の読み出しができたので、今度は置換を試してみたいと思います。前回使ったものに手を加えて、図のようなxlsxファイルを用意しました。
どのセルの文字列か判定できるようにこんな風にしましたが、ひとまず、全部同じ文字列に置換させてみます。
文字列xmlは、「[プログラムの位置]カレンダー\xl\sharedStrings.xml」をXMLとして開いたもの
文字セル一覧は、文字列xmlから「sst\si」を取得したもの
文字セル一覧を箱へそれぞれ繰り返す
臨時一覧は、箱の要素一覧
臨時一覧を器へそれぞれ繰り返す
もし器の名前が「t」ならば
器の内容は、「テスト」
もし終わり
繰り返し終わり
繰り返し終わり
「[プログラムの位置]カレンダー\xl\sharedStrings.xml」に文字列xmlを保存する
プロデルでXMLをファイルに保存すると、インデントや改行で整形して出力してくれます。コードの実行結果です。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="56" uniqueCount="56">
<si>
<t>テスト</t>
<phoneticPr fontId="3" />
</si>
<si>
<t>テスト</t>
<phoneticPr fontId="3" />
</si>
<si>
<t>テスト</t>
<phoneticPr fontId="3" />
</si>
<si>
<t>テスト</t>
<phoneticPr fontId="3" />
</si>
<si>
<t>テスト</t>
<phoneticPr fontId="3" />
</si>
<以下略>
置換できています。
xlsxファイルを復元する
このxmlファイルからxlsxファイルを復元します。元のxlsxファイルを展開した時にできたファイル群をzip圧縮して拡張子を変更すればいいのですが、いろいろなサイトで書かれているように、ファイル群が入っているフォルダごと圧縮するのではなく、その直下の
_rels
docProps
xl
[Content_Types].xml
の4つをzip圧縮しないとExcelで開いたときにエラーになります(そうと分からずちょっと悩みました)。できたファイルは正常に開けました。
xlsxの自力編集は高率で読み込みに失敗するらしいのですが、sharedStrings.xmlを整形した程度なら大丈夫なようです。
~続く~
Author And Source
この問題について(プロデルでネ申Excel作成を自動化したい #1), 我々は、より多くの情報をここで見つけました https://qiita.com/shukvaal/items/f246aca1745059d0a9da著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .