Forum Discussion
Amos_Lim
Resolver I
3 years agoNeed Recommendations on Pdf Data Set
Hello, I'm using Power BI to import data from a pdf file. There are three columns: UserName, ID, and the keyTags that each user can choose from. Each key description is preceded by a Bullet. Not ...
- 3 years ago
Hi,
This M code works
let Source = Folder.Files("C:\Users\mathu\Desktop\Data"), #"Removed Other Columns" = Table.SelectColumns(Source,{"Content"}), #"Added Custom" = Table.AddColumn(#"Removed Other Columns", "Custom", each Pdf.Tables([Content])), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Content"}), #"Expanded Custom" = Table.ExpandTableColumn(#"Removed Columns", "Custom", {"Id", "Name", "Kind", "Data"}, {"Id", "Name", "Kind", "Data"}), #"Filtered Rows" = Table.SelectRows(#"Expanded Custom", each ([Kind] = "Table")), #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows",{"Id", "Name", "Kind"}), #"Added Custom1" = Table.AddColumn(#"Removed Columns1", "Custom", each Table.PromoteHeaders([Data])), #"Removed Columns2" = Table.RemoveColumns(#"Added Custom1",{"Data"}), #"Expanded Custom1" = Table.ExpandTableColumn(#"Removed Columns2", "Custom", {"User name", "User information", "Credentials", "keyTags", "keyTag groups", "keyTag time profiles"}, {"User name", "User information", "Credentials", "keyTags", "keyTag groups", "keyTag time profiles"}), #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Expanded Custom1", {{"keyTags", Splitter.SplitTextByDelimiter("•", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "keyTags"), #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"keyTags", type text}}), #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each ([keyTags] <> "")) in #"Filtered Rows1"Just place the PDF file in a folder. In the Source step, give the patch of the folder.
Hope this helps.
Amos_Lim
Resolver I
3 years agoThanks, Ashish_Mathur.
As my Pdf consists of 19 pages, and my source will be
Source = Table.Combine({Page001, Page002, Page003, Page004, Page005, Page006, Page007, Page008, Page009, Page010, Page011, Page012, Page013, Page014, Page015, Page016, Page017, Page018, Page019}),
How can I make changes to your original M code to suit my source?
Ashish_Mathur
Super User
3 years agoHi,
Share the download link of that 19 page PDF file.
- Amos_Lim3 years ago
Resolver I
- Ashish_Mathur3 years ago
Super User
Hi,
This M code works
let Source = Folder.Files("C:\Users\mathu\Desktop\Data"), #"Removed Other Columns" = Table.SelectColumns(Source,{"Content"}), #"Added Custom" = Table.AddColumn(#"Removed Other Columns", "Custom", each Pdf.Tables([Content])), #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Content"}), #"Expanded Custom" = Table.ExpandTableColumn(#"Removed Columns", "Custom", {"Id", "Name", "Kind", "Data"}, {"Id", "Name", "Kind", "Data"}), #"Filtered Rows" = Table.SelectRows(#"Expanded Custom", each ([Kind] = "Table")), #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows",{"Id", "Name", "Kind"}), #"Added Custom1" = Table.AddColumn(#"Removed Columns1", "Custom", each Table.PromoteHeaders([Data])), #"Removed Columns2" = Table.RemoveColumns(#"Added Custom1",{"Data"}), #"Expanded Custom1" = Table.ExpandTableColumn(#"Removed Columns2", "Custom", {"User name", "User information", "Credentials", "keyTags", "keyTag groups", "keyTag time profiles"}, {"User name", "User information", "Credentials", "keyTags", "keyTag groups", "keyTag time profiles"}), #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Expanded Custom1", {{"keyTags", Splitter.SplitTextByDelimiter("•", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "keyTags"), #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"keyTags", type text}}), #"Filtered Rows1" = Table.SelectRows(#"Changed Type", each ([keyTags] <> "")) in #"Filtered Rows1"Just place the PDF file in a folder. In the Source step, give the patch of the folder.
Hope this helps.
- Amos_Lim3 years ago
Resolver I
Thanks so much.