I would just use XLINQ which has now been around for nearly 4 years, I wrote an article which shows its usage a while back if you are interested : XLINQ Introduction Part 3 Of 3, it shows the same sort of things you show here.