エクセルファイルの作成者を更新する方法
皆さんこんにちは、アドバンス情報の川島です。
XPAのプログラムにてエクセルファイルを作成しているのですがファイルにプロパティの詳細タグの作成者等をXPAのプログラムから更新を行いたいのですがが可能でしょうか?
WEBにて検索してみるとVBEの場合は、
.BuiltinDocumentPropertiesを利用すれば可能なようですが
XPAからでも可能でしょうか?皆さんはどうされておりますでしょうか?
-
プロパティの取得ではBuiltinDocumentPropertiesは出てきましたが
プロパティの設定ではBuiltinDocumentPropertiesは出てきませんね
どうなのかな?
-
アドバンス情報の川島です。ご回答ありがとうございます。
そうなんです、プロパティの設定に出てこないんです。
後プロパティの取得でBuiltinDocumentPropertiesを指定すると「read only」と表示されます。
ひょっとしたら取得はできても更新はできないでしょうか?
皆さんはこんな処理はしないのでしょうか?
-
やったことないですね
.NET等で書くしかないのかな・・・
-
こんにちはPuです
BuiltinDocumentPropertiesはCOMなのでプロパティの設定で出てきても良いのですが...
VSからだと参照でCOM追加できますが
Magicの中の.netの記述でCOM参照追加の方法が分からないので
一筋縄ではいかなそうな...僕の能力不足ですが
VBAがスマートな方法だと思いますが...
pythonなら超簡単なんですが....
でわ~でわ~
-
アドバンス情報の川島です。
ご回答ありがとうございます。
やっぱりXPA単体では無理みたいですね。別の手を考えてみます。
ありがとうございました。
-
やるとすればEXCELにマクロを仕込んでおいて
のシートに必要な情報を入れてマクロを実行して情報を変更して
そのシートおよびマクロを削除してみたいな事でやるのかな
-
こんにちは Puです
全てのbookにvba仕込んでおかないとダメなので面倒ですね。
私ならMagicからpythonのpgをosコマンドでcallして 引数に book名,変更作成者名
とします。magicから良くpythonをcallしてますので
例)call osコマンド 'python.exe '&'pyhonのpg名'&' -x '&'book名'&' -o '&'変更後のowner名'
pythonなら7行位の命令で可能でした。
でわ~でわ~
-
Puさん こんにちは
>pythonなら7行位の命令で可能でした。
どんなPGか教えていただく事は可能ですか?
-
こんにちはPuです
book名と変更者名をconstにしたソースを記述します
(引数、パラメータを受け取る命令を書くとロジックが分かりずらくなると思いますので)
1分程度で書いたので綺麗にかけてませんが...(^^;
----------------------------------------------------------------------------------------------------------------
from openpyxl import load_workbookwb = load_workbook('F:/work/TEST.xlsx')name = 'マジシャン'properties = wb.propertiesproperties.creator = nameproperties.lastModifiedBy = namewb.save(args.excel)------------------------------------------------------------------excelが入ってなくても大丈夫です。excelがインストールされていないサーバーなどでexcel等を操作する時に良く使用しています。でわ~でわ~ -
Puさん こんにちは
早速回答ありがとうございました。
テストしたら簡単にできました。(すごい・・・・)
>wb.save(args.excel)
ここがうまくいかなかったのでwb.save('F:/work/TEST.xlsx')にしました。
-
Puさん こんにちは
もしよかったらパラメータの受け取り方教えていただけないでしょうか
-
こんにちはPuです
>wb.save(args.excel)
パラメータでの記述が残ってました hahaha(^^;:
------------------------------------------------------------------------------------------------
from openpyxl import load_workbookimport argparse# 引数パーサーの起動parser = argparse.ArgumentParser()# 引数の取得(型チェック指定あり)parser.add_argument('-x','--excel',default = '',type=str)parser.add_argument('-o','--owner',default = '',type=str)args = parser.parse_args()args.excel, args.ownerwb = load_workbook(args.excel)name = args.ownerproperties = wb.propertiesproperties.creator = nameproperties.lastModifiedBy = namewb.save(args.excel)---------------------------------------------------------------------------------------------------------python楽すぎてやめられません(^^;
でわ~でわ~
-
------------------------------------------------------------------------------------------------
from openpyxl import load_workbookimport argparse# 引数パーサーの起動parser = argparse.ArgumentParser()# 引数の取得(型チェック指定あり)parser.add_argument('-x','--excel',default = '',type=str)parser.add_argument('-o','--owner',default = '',type=str)args = parser.parse_args()wb = load_workbook(args.excel)name = args.ownerproperties = wb.propertiesproperties.creator = nameproperties.lastModifiedBy = namewb.save(args.excel)------------------------------------------------------------------------------ごめんなさい 上のはtype ミスです。でわ~でわ~ -
Puさん こんにちは
ありがとうございます。
これでほとんどの事が応用して出来ますね
最高です。
感謝感激です。
-
こんにちはPuです
私はwebアプリのサーバー側で多用しています。
magicのc/sのように、clientはhtml+javascriptで画面
サーバー側は、値を受け取ってSQLserverを読んで、内容を返しているだけです。
クライアント50台とかでもライセンスいらないので(MSJ様に怒られそうですが...)
IoT(raspi)のアプリも簡単に作れるので重宝しています。(工場の生産ラインに入れてます)
RPAも出来ますし、データ分析もAIも画像処理も得意な言語です。
誰が書いてもほぼ同じになるので(規約がある)、ソースの見やすさっていう点ではmagicに似ている気がします。
でわ~でわ~
-
Puさん こんにちは
pythonは気になっていたのですが本を買ったりして・・・読んでなくて・・・・
実際に動かしてみるとわかりやすいですよね
これから重宝しそうです
-
Puさんはいろんな言語をやっておられて、都度情報を提供していただいて本当に助かります。ありがとうございます。
サインインしてコメントを残してください。
コメント
17件のコメント