Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マンション理事長、動く!
Search
HANACCHI
November 30, 2023
Technology
0
97
マンション理事長、動く!
PDFからのデータを、うまい事EXCELに展開したい!
面倒な構文解析もしたくない!
って時に読んでください。
HANACCHI
November 30, 2023
Tweet
Share
More Decks by HANACCHI
See All by HANACCHI
ChatGPTにテストデータを作ってもらう
hanacchi
0
140
AI JIMYで数独
hanacchi
0
35
メール本文をどうやっつけるか
hanacchi
0
320
2024年のローコード界隈最新事情~業務担当者でもAI・生成AIを活用できる!~
hanacchi
0
420
AI JIMY - 登壇(インストール編)
hanacchi
0
490
AI JIMY - 登壇(設定編)
hanacchi
0
450
AI JIMY - 登壇(実行編)
hanacchi
0
430
パスワードを保存しますか?
hanacchi
0
440
テスト系アクティビティを使ってみる
hanacchi
0
610
Other Decks in Technology
See All in Technology
猫でもわかるAmazon Q Developer CLI 解体新書
kentapapa
1
130
SOTA競争から人間を超える画像認識へ
shinya7y
0
600
Azure Well-Architected Framework入門
tomokusaba
1
140
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
140
仕様駆動開発を実現する上流工程におけるAIエージェント活用
sergicalsix
6
1.8k
Kubernetes self-healing of your workload
hwchiu
0
600
Okta Identity Governanceで実現する最小権限の原則 / Implementing the Principle of Least Privilege with Okta Identity Governance
tatsumin39
0
180
AIプロダクトのプロンプト実践テクニック / Practical Techniques for AI Product Prompts
saka2jp
0
120
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
200
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
2
390
生成AI時代のPythonセキュリティとガバナンス
abenben
0
150
ヘンリー会社紹介資料(エンジニア向け) / company deck for engineer
henryofficial
0
420
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
890
4 Signs Your Business is Dying
shpigford
185
22k
Code Review Best Practice
trishagee
72
19k
Producing Creativity
orderedlist
PRO
347
40k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
354
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
For a Future-Friendly Web
brad_frost
180
10k
Transcript
マンション理事長、動く!
はなっち!とは…  Twitter:hjmkzk  Qiita:@HANACCHI  FaceBook:hajime.kozaki  2019年10月 UiPath
Japan MVP 2019 認定 ~~~~~~  2022年10月 UiPath Japan MVP 2022 認定  2023年10月 UiPath Japan MVP 2023 ならず!  2024年7月 UiPath Japan MVPには立ちません  1998年8月 弊マンション竣工  1998年10月 はなっち!入居!  2020年7月 はなっち!完済!  2023年4月 10回目位の理事長!
最近の弊マンション  川崎市中原区に在るこの全29戸マンションは、 東急東横線・目黒線の元住吉駅から徒歩21分、 または同駅よりバス約6分の長寿荘入口バス停下車 徒歩3分です。  管理会社は、社名は変わりましたが、竣工時から一社。 フロントさんも、3名。管理人さんは4代目。 
4代目の管理人さんが66歳と言う高齢で、がん治療にも通っ ているのですが、本人は継続を希望している…
最近の管理人さん  保管資料の扱いが雑! ✓ ガイド付きの穴あけ器を使っても… ✓ 報告書が他の箱ファイルに 収納されている… ✓ 報告書が数年に
亘って無い!
最近の問題点  大規模修繕工事  直結増圧式給水化  エレベータ架け替え ➢ エレベータ利用状況を報告書(紙)からEXCELに転記し、調査 ➢
欠損年月分は、エレベータ保守会社からPDFファイルを受領 ➢ その際、Webで情報が得られることを知る! ➢ そこには欠損年月分以外の報告書のPDFファイルが! よし!UiPath Community Editionだ!
PDFから欲しい情報 ... 25項目
PDFアクティビティで、Stringへ エレベーター遠隔点検
Stringから、必要な情報を! エレベーター遠隔点検.Replace(ControlChars.Cr, String.Empty).Split(ControlChars.Lf) currentItem.Contains("制御盤内機器作動状態") currentItem.Substring( currentItem.IndexOf("制御盤内機器作動状態") +“制御盤内機器作動状態”.Length+1, 1) 25項目中の1つの項目 を抽出するのに、24項
目の空振りが発生!
Stringから、必要な情報を! (ほぼ)ダイレクトに取得できないか? エレベーター遠隔点検 .Replace(ControlChars.Cr,String.Empty) .Replace(ControlChars.Lf, " ") 改行で配列ではなく、水平展開!?
Stringから、必要な情報を! 配列にせず、平文から取得できないか? エレベーター遠隔点検 .replace("制御盤内機器作動状態", ControlChars.tab) .split(ControlChars.Tab) エレベーター遠隔点検s(1).TrimStart & " "
制御盤内機器作動状態 .Substring(0, 制御盤内機器作動状態.IndexOf(" "))
もうちょっと見やすく(項目Bの値Bを取ってみる) 平 文 項目A_値A_項目B_値B_項目C_値C 平文配列 ← 平文.replace(“項目B", ControlChars.tab).split(ControlChars.Tab) 値 ←
平文配列(1).TrimStart & " " 値 ← 値.Substring(0, 値.IndexOf(" ")) 項目A_値A_<TAB>_値B_項目C_値C 項目A_値A_ _値B_項目C_値C 値B_項目C_値C 値B_項目C_値C_ 値B_項目C_値C_
こうすることで  「取得項目」の右側の値をダイレクトに取得でき、 配列(1)の処理に注力できる!  スニペット、共通部品化をすることで、プロジェクト内部での 処理の共通化が図れ、生産性があがる!?  「取得項目」の左側の値を取得する場合は、 配列(0)の値を更に.splitする事で、対応の可能性がある!
ところで最近気が付いたこと その1  StringのTrimメソッドは、そのまま使うと、空白以外の文字も トリムしてしまう。
ところで最近気が付いたこと その2  配列中の空白値は、ForEachアクティビティだけで除去できる Ex)"A,,B,,,".Split(","c).Where(Function(v) v <> String.Empty)
一生UiPathします How Do You Like "UiPath"?