This paper presents an end-user-oriented programming environment called Mashroom. Major contributions herein include an end-user programming model with an expressive data structure as well as a set of formally-defined mashup operators. The data structure takes advantage of nested table, and maintains the intuitiveness while allowing users to express complex data objects. The mashup operators are visualized with contextual menu and formula bar and can be directly applied on the data. Experiments and case studies reveal that end users have little difficulty in effectively and efficiently using Mashroom to build mashup applications. Categories and Subject Descriptors D.2.13 [Reusable Software]: Reuse models; H.5.m [Information Interface and Presentation]: Miscellaneous. General Terms Design, Human Factors, Languages Keywords Mashup, End-user programming, Spreadsheet, Nested table.