I'm a US citizen with a work permit to work in Canada. I'm buying a house in Quebec. In order to pay for the house, I want to bring US dollars into Canada to buy the house. I have an account with Royal Bank in Canada.
Can I simply go to the bank and write a check in US dollars, on my US Bank, and then let Royal Bank change the money into Canadian dollars? I have a US dollar account with Royal Bank.

I have done some research on this as I am in same situation but my direction is from other side of the border to US.

To get the best rate, you need to open a US Borderless account with TD bank in Canada. When you wire anything above 10K its $50 for the transaction. The borderless account will give you the best rate in the market. You can wire the money from any US bank to this account and then transfer money from US borderless to a Canadian account in TD.

I am planning to do the reverse. Selling house in C$ and transfering money from TD C$ account to my US Borderless account to get the best rate. Then will wire the money to Canada.

There is a TD phone number as well that helps people living working or dual nationals on both sides of the border. Its an excellent service to tranfer your credit history to other side of the border by opening TD Visa card.

One of the cross-border books I read (The Border Guide?) recommended Custom House for currency exchange. It's now part of Western Union. Wondering if this method is recommended, as I'm not happy with the exchange rates I get when I cash US checks at RBC. But then, the way I'm doing it, I don't pay fees for wiring.

Well, it requires 3 accounts, and it has a fee. The statement that it has "the best rate in the market" is highly questionable, and the account itself probably comes with its own fees apart from this.

Most cross-border people already have an account in each country. customhouse merely links the 2. Easy-peasy.

One caveat is that I wish they had maintained there independence from WU. I find WU a firm taht generally preys on the poor and is quite costly for the ordinary coonsumer. But for savvy people like us, not for those paying $10 when sending $50 to their abuela, it is still simply and cost effective over any of the banks.

Thanks! Sometimes I am simply transferring $500-1000 so I wonder if it's worth paying a wire transfer fee with someone like Custom House, or if I should just accept the exchange rate RBC gives. Maybe I'm not understanding how it works..

I use paypal. I have a U.S. bank account and a Canadian bank account. I have a U.S. paypal account and a Canadian paypal account. I just transfer money from my U.S. bank to my U.S. paypal.. then send a money gift to my Canadian paypal account and then transfer that to my Canadian bank account.

I had thought of opening a U.S. TD bank account which also lets you transfer free, money from your U.S. TD bank account to your Canadian TD Canada Trust account. But I didn't do that as the nearest U.S. TD bank to me is hundreds of miles away. The paypal thing works out nicely and there is no paypal fee.