Create an entity which holds the data.
On the click of the button create a record in the entity.
Display this record in a listview, add widgets in the listview and you’re done. Be sure to refresh the record when committing this to make it show up in the lust view.
For the second situation the solution is similar. Pass the number to a microflow. Create a while loop using the number.
In the loop create the record and at the end open the page that has the listview with the widgets. For performance it’s a good idea to create a list of the records you will be creating in the loop, so that you can add the records to the list in the loop and commit the list after the loop.