I wouldn't recommend public transport. The other answer said it's safe, but only if you take some precautions, such as not using your phone in public (actually, hide all your gadgets, and carry your bag in front of you, not in your back). I've lived there for 20 years and used public transport a lot, and I've never felt completely safe, TBH (maybe it's just me, though).
But I'd avoid it anyway because there's a big chance that you get a very, very crowded train/bus, and it won't be a pleasant experience (specially with kids). If you get it during rush hour, it's even worse (there's a common joke there: "If you're feeling alone, just use São Paulo's public transport at rush hour").
Not to mention other frequent problems:
- constant failures in the trains: more than 200 in 2023 (and that's an improvement, if compared to 2022)
- strikes (either by bus drivers or train companies): every year there's at least one of each, and it's common that both do it together
- heavy rain and floods: a constant issue, and in the last years, kinda unpredictable (I always had an umbrella in my bag, no matter how sunny it was)
All of those usually causes major delays and chaos.
But if you insist on using public transport
Anyway, even though I don't recommend it, there's another option that wasn't available when the question was posted: since September 2023, there's a new train that connects Guarulhos Airport to Terminal Barra Funda (a bus terminal in the West region of São Paulo).
This train line is called "Expresso Aeroporto" (Airport Express), and the schedule can be found here.
The station is near terminal 1. If you're arriving in terminal 2 or 3, there's a bus that can take you to the station. There's a complete guide (in portuguese) here.
One of the stops is in Estação da Luz ("Luz Train Station"), where you can get the subway (blue line) to get to Portuguesa-Tietê station (that's a quick trip, only 3 stations).
Then you can get a bus to Expo Center Norte. According to Expo Center Norte website, the bus stop is at Cruzeiro do Sul Avenue, 1701, and the lines are:
- 2012-10 (Vila Medeiros – Metrô Tietê)
- 2033-10, Shop. D (Vila Sabrina – Shopping D)
So, the full route is:
- Go to the airport train station (Terminal 1: walk / Terminals 2 and 3: take bus)
- drop off at Luz station
- get the subway (blue line)
- drop off at Portugusa-Tietê station
- get the bus to Expo Center Norte
A better alternative, IMHO
What I'd recommend to tourists - and IMO the easiest and most straightforward way - is to get a taxi. The official company name that operates in the airport is Guarucoop, and there are stands in all 3 terminals. They look like this:

More information can be found at the airport website. Those are different from a regular taxi because it's a fixed price: you inform the address and pay in advance.
You can also use apps such as 99TAXI, as the other answer said. There's even a specific area to wait for them, outside the terminals. They are easy to spot, just look for one of those yellow things:

But beware, in this area there are lots of illegal drivers offering their services. Many of them overcharge passengers (2, 3 or even 10 times the price of a regular taxi), and some are even criminals/scammers, so don't go with them. Use official services such as 99TAXI or Guarucoop. Another advantage of official taxis is that they can use bus lanes, which can be a great advantage, specially during rush hours.
I know the OP mentioned that Uber is not an option, but it's noteworthy that Uber drivers can pick you up at specific spots, usually nearby the same area used by 99TAXI.