XlsxWriter probably should probably accept integer/floats in situations like this. I'll look into allowing that in future versions.
In the meantime the recommended workaround in the documentation is to write the url with a dummy (or no) string and then overwrite the string part of the url with whatever type/data you wish.
Try modifying your example as follows:
...
main_sheet.write(1, 0, 'internal:linkable_sheet!A1', integer_format)
main_sheet.write(1, 0, 100, integer_format)
...