fc = "C:/Temp/Default.gdb/Blah"
desc = arcpy.Describe(fc)
flds = [fld.name for fld in desc.fields]
flds_remove = [desc.OIDFieldName,
desc.shapeFieldName,
desc.areaFieldName,
desc.lengthFieldName]
for fld in flds_remove:
flds.remove(fld)
arcpy.MakeQueryTable_management(fc, "tmp_view", "NO_KEY_FIELD", "", flds)
#Result 'tmp_view'
arcpy.TableToExcel_conversion("tmp_view", r"C:/Temp/fc_dump.xls")
#Result 'C:/tmp/fc_dump.xls'
arcpy.Delete_management("tmp_view")
If you want it to work with tables as well as feature classes, you would need to add some code to check for a shape field before adding it to flds_remove; otherwise, an error will be generated.