摘要:使用开源程序NPOI导出Excel示例。NPOI首页地址:http://npoi.codeplex.com/,NPOI示例博客:http://tonyqus.sinaapp.com/。
示例编写环境:
操作系统:Windows7 Ultimate SP1 64bit
开发软件:Visual Studio Ultimate 2012 Update 3
Office版本:Office Home and Student 2010
NPOI版本:NPOI 2.0
示例界面如下:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWMAAAF4CAIAAAAOsQ/uAAAgAElEQVR4nO2d918USf7/+2/4fE/U3b3Hprtb18/eersr6uruZ6Pe3u66RsCEOQdMIDnHARUUMAsi6iKSc5oZcg6CoKIEBRRFQBABJVx/f2hmpqen08DU9IT38/F+8Jgpqutd7+6q11TXTFdh5Xe7181/Z+TOuZHa0JHa029vn3p7O8i47dRI7emR2tCRO+csTGeKK544nK1wOFthf6bCLrTUNqTEOqjwyMmCIycLDp3MP3Qi7+DxvIPH86wCcq38c638cw+IcveLpPtF0n1+kr2+kr2+kj2+4t2+4l0+4p3eOTt9xDu9xTu8xTu8xNu9xDu8xNu9xdu9Jdu9JNu9JNu9Jdu9pdu8pdu8crd5S7d5Sbd55W71yt3qJd3qlbvFM3eLZ+5mD+lmD+kmd+kmd+lGd8lGd4ml24RtcBVvcBWvd5Wsd5WsdxETts5FvM5ZvNZZvNZJvNZJvNY5Z61zzhqnCbNwzLFwzLZwzDYnzIFk9tnm9tmr7bJW2WWtss1ceSxzuU3mMuvMpUcyfz+c8euhjP8cTP/lYPq/rdKXWKUtsUpbTNgBhf18IJWwxQdSF1ulLrZKXXyAxn5mtcUHZCXLbInalrr4QOrP+1N+3p/8076kn/Yl/bg38ce9CT/uSfhBYfE/7JZbHGHf09quWJLF0NjOmO93xny3M+a7nbeYLXrCdlDsJqtFf78z+vud0T/suvXj7pif9sQu3he/ZH/CL1ZJ/7FK/vVgym+HUpceSfvjaPofRzOWWWcut5mMrbDNXmknXmkvXWkvXWknXmGbTaRjhFIMSayGsncNZmweTN84mLbBqC1942DG5qHsXUMSK0Ip7M+UE2ZzqnCnS8xaqzOrdh9ftfv4yt3HV+46vmJnwIqdAct3BizfEbBsR8CyHf5/bJ+wpdtES7eJft8q+m2r369byCb6dYvff7aI/rNF9Mtmv/9sEf1CvJ4wf9nfCfv3ZsJESzb7L9nkv2ST/+JNoiWbRIs3iX7eJPp5o8wsJ+wnim0Q/bjBj7Af1ite/LDel2LfE7bO9/t1vt8Rttb3u7W+/7fW59s1Pt9Y+Cyy8F5k7v21mffXZt4LVnvNX+01b5XXvFWe81Z5zlvpaUqyuSpmqmKqefgcNY/FZDWhmOlKT9OVHnNXeMxd4T53uftXy92+Wu721XLXL5ep2B9yc+Ftzqr2xVLnL5Y6cdvvFHPksKVOXy51+vIPp6/+cJ67zGXuchfT5a7zVrrNX+k+f5X716s9vjbzXGjmtcjce5GF9yIL728svL+x8FHLvt8Q+Mvuaytss1fYZv+y+9r3GwKJ9AmleJ2+cyB5w0D8qoHYZa9ilk7a+mOWPrv2a9OlJY+u/Lsn6nc+h/RE/f4o/N8NZ39uvLi468ZvU/GuERuIXTYQv2ogecPr9J0WpjNzKp7Ynym3Cy23DSnf5nAjNy+/u6fnvzgOBmaQ1t3Tk5uXv2RH2JIdYdfjMmoa21uev255/npCKV4lb+mPM+u/+VvfjSV9N37mac+u/Hgv9NuawEWE1Z/+pvn8d71N+TiOd93Pe3ThO84SuiN/qg/+5undXBzHcRzvzAt6eZ2vd2S2pP/mb/1xZq+StxBKYXem3DakzDak3Hxv4NDQ8Ph/cTAwA7ahoeH/Wyv6v7Wiu63P6x91325+cbv5xYRS9Mdb9t1c3he55GXE9y+vfMfHesO/u3NyPq5MY5p/e1kUjuOdDdKHwQt7wzkKeXRmUX2ySH54e86J7rD/41kBVBbxfV/kkr6by/vjLQmlsA0ttw0pswkpW7nLf2z8v6NgYAZtY+P//cbc6xtzr3ttPTVNXYRNKEXfrXUvry3tDf+x59K3PRcX8bGu8wuL3L6gKEVDkl++y79SbP6Z4zinVjS3PsC0PsC04bhp44l5T0K/7gj9uiHAtMrnq1rR3Oag+e0hC8o8v6zLicRxvLEiO/rg7Dv+po+DFxB5qny+aggwfRL69bOzCx8GzrvjP/dh4LwnZ75uPb2gPsD0wcl5bcELKFVqC1lw97ipqrWcms8zqJ6Li3oufdsb/uPLa0v7bq2zMJ2ZXf7kWEjZsZAym+CylTv9R8f+OwIGZtA2OjahFA2PuqsfPidsQil6b5j3hP/SfeHbF2cXvDgzj491BptK7T8jBOLclo8TD8/Ksf3fcvc5XXclOI4/qROnHP30zeuXOI7Xi6/iON6a5id1+KzvWStxyEDXo3ynf3bUislCU+L6ucT+s+GBl/KUmgsb7/pN6FFT/rUil3++fHQbx/G+x7frfP5FqVLLya8GHpWPj42S7U1v24OAL3kG9eLMvBdnF3Rf+LYn/JfeG+YWpjOzyjtsQkqtg0uPni5ZscNvZOy/b0fBwAzZRmRKUf/oRdXDZ4RNKEX31VUvLi7uCl34/LTp81Nf8bGOk1/m2HxK9OGLWz5KOzyrwOF/a9w/f3ZHjON4S1V2+LaPB1/14jhO/K2J9nrZ2UrWhfbbOY+qs8kpCQc+GR7opYxTqs9ZloWsx3F86FVvnKcZjuMvO1uyrD9t9P3XsyClKt31nhOz/5PRoVfyY4eeN8Xs+8cdz895BvX81FfPT5t2hS58cXFx99VV5nNnZpV1WJ8uPXqq5MipkmXbfd+M/nd4BAzMkO3N6H+/Mff8xtyz/tGLqgedhE0oxYuwZc/P/PAsyLTzxL86j3/Ox9pE/8w6/HdKr861+UdnbQ6O400VWec2vD/Y34vj+J2sKwl7P073NcNxfLC/12fFu25/vIPj+PBA7/XtH1akhuE4/vRBVfzej8pvuBGKcGXLB2Gb32+/X4Xj+JPa7DybT7qaquVe0n3NKp0+bRP9k1KlJwGfF9l+cnHzx2MjwziOjw71X7B8v9R+1pMAXhFN2Il/PQsyfX7mhxdhy8znzswsaz9yquRwUMmhwOI/tvkMj44PjSjsXlNLyLnLjq6eQyPjjq6ejq6edXcb6+42Eq+JxJBzl+81tZCPAgPTZRseHV9k5rHIzKO+tauy8SlhE0rx/MJvnae/fRrw5RO/z574zuZjj70+zTzwEUUpcqw+fno7G8fxpvLMEIt3CaVI2v1BwZG/lVx1oWR+M9CbuPvDmvQwHMefP6zKtvroblY4juOdD6qyD36cZfUR8a+26qxC649jd35AHNV2rzJm5/v1zp+0eX+qWqs270/zjnx8cdPHw71PLlh+UHD0b7TZ2Mzvs6cBX3ae/vb5hd/M587ILG07FFh0KLDI6mThb5u9hkbGX79VmI9/YMODluGR8cG348Mj48Mj44Mj44Mjstdvx4dHxhsetPj4B5KPev12vMJpNkbP6kjlnPL8K27QpGvQKpxmY6tuInUBpgs2SDLaDEMj44vM3BeZud9peV5x/wlhWPnd7rXz3+k888vTEws7fD5v95zV7vEPPtbq+vf0Pe8Tvff0qhm3tv41c+/7JUc+fFKTheP4w7KM4NUzCKXI3vd+mfVH6Z4rcRwf7O8JWDb99OoZYeveydj7fube92+nXcZxvOthVa7VBxWRLsSYInrLe1Gb3+u4X4njeEd1Vp7VB10Pq+QSUxLhXHXsozZ3+oo9cvtHwaEPb239a8GhDx+58YpFyTxndfh8/vTEws4zv5jPnZFR0mZ1ouDA8fwDAfm/bvIYfDs+8EZh9i6er9+Ov37Dam/H7V08yUcNvBkvd5o9y6mOkjjwps7+09VXSXlWXKd/LTu2zv5Tksh86lJOLVANK3eaja26OenDwXTf5A1SYW/GX6tkG3w7vmi1+6LV7nXNz8rvdRCGld19sXb+O09PL+7wn9fmOfux698eu3zEx5qdPkzd+S7RdW9tmll19P162w9u27z/pDoTx/GHZemnV5oM9vfgOC7e+16dzQdJ298d6u8hjynapeHS/X+9nXoJx/Guh5Ulh95P3fHe0CulPDiOJ21/t/a6M47j3R3NFckXcRzvedKcuuPdetsPmOrW4vxRo8OHLc68AqGa69/aPGd3+M97enqx+dwZaUWP9vvn7RXl7hXl/rLBbeDNeP+wwl6/HX81zG2v3yod1T88XurIOKaIIOVZfp3+9SzHuv7h8f7hOrtPMXn6FK3UcTa28qZGigLTQXs1PP7qDYMp5xx4M75wtdvC1W61TZ1ld9sJm1CKJye/b/f+4rHL3x85vP/I/q98rMn2vZydM4nOnLl9xn2b95ps/9pw9L1nNRk4jreWp4ebTxt+1YPjeOHemfdt3ivd/06ExTSyWDRGORXve+de+iUcx3uaKqsOvlN+4J0/1ynlids4vfr4cuJ14WX7m+tN+p424zje/bCyZN9MnlVVzxzef+zy93bvL56c/N7sqxkpha27/cS7fMQ7fXIWr3N+NTzeN6QwOxfP/qFxTrNz8SQf1Tc00dspiX1DdXafrr5ybTW28iaRZ/k1RX7ya9mxdXafYvL0KRqhFBopCkzXrH9ovH94/ERQyOdzvgg8fYb4AAs8febzOV+cCArpHx7vJ2V+NTy+cJXrwlWuNErRLvr2sdvnrXYftli/23J0Jh97eHhm5d7p6ZumpW+aVrl3+sPDM1uOzmw8PLNs9/TMzdOyt0zL2WqStvEv4i3TavZPf3B4Zr3VjIIdJvHr//Kn+f/cXPP/iKNu75sh3TYtfdO0op0mDVYzGqxmFO8ySdzwlyiL/7m55i/pG/9Sutukcu90ydZpaRun5Ww1KdhhkrPVJHXjtNxt06r3TW/mV1X1zPrdVrsPH7t93i761uyr6Un5zdu9Mrd5Zm71yPzJwrF/aOzloMLsnD37hsY4zc7Zk3zUy8GxEofZnzjUURIp/ypxYBp3YLJj62xnYcsjyYfX2c7CsJVRLwfHXg5GLZfnjFwtO3S2beWYcuGrw2V+ZQeCGZT1ETY09mp4PPT8pe9+/Cn4zPngM+e/+/Gn0POXXg2P9w1N5CHy9w+NEUpx++GT0obHhE0oRZvPolbnz1qOfdB85J2mQ9P52MOD0+8eMKnbZ1K3z+TuAZOHB6c3HZr+gJRYu9ekdq/JnX0m96xMHh6c3mg1vX6/SfUek4pd0yp2Tbu916Rhv8ndAyb1+03q9pk07DdptJreaDW9Yb9JzR6Til3TKncr8tzZb1K716Ru30Tm2r0md/ab3LfiVU91rfnIOy3HPmh1/qzNZ5HZV9MT8x5udUvd7Jay0SXlezPbvqGxnkGF9Q+P9w6NcVr/8Dj5qJ7BsZ5Kl0+YZABbHUbJPDhW5DB7WaTi9ScOdT2DYz2DdcdmkY5bGdUzONYzGLUMm32skpQtcjWGzT5WSSowcrUs81hP5GpslkvR4FiRw2xFIpgBWe/gRDt8OTTWPzx+PixipdmalWZrzodF9A+Pv5Q3VFn+vqGxr1e5fL3KpfpBR/GdVsKwsoautfPfeeS1sMXpn802HzUdfu/hwZk87YHVzPtWM+9bzXxgpZTYKEu/bzWz0WrmA3L+AzPvHZh578DM+wdmPrCayEwYJc/9AzMbrRR57pNyUorVrDUdfq/Z5qMWp38+8lpo9uX0eGnjRufkDY6JGxyTvl1lTVEKaXElH6WQFlfyuaJhKzG5HPQM1h2bpZAMslL0DEYtm+VSNJGHfIjMiBHERJ6xsJWYTFkUjlS1CZTCUI2sFC+Hxi5F3Nh3yGb3gSMXwiOJFFWlWLDSacFKp+rG9qK6FsKwwtpnm3+ak2K/vNX5y2bbT5ut/9509GNjtmbrvzfbftrq/GXsoX+bL5p1Pe3OOoe4dQ5xa+3jvllxhKIUts6efJTC1tmTdJTyQICWWS5FiJWCktIDSmG41isTi5dDY8FnL5mt3RwVl/xnTOLSleZBoedeymRCaUyxwunrFcpKkVbU5n7smM2G3zNtFrc4z212/KLZ8V/GbV+0OM9NOvj97mU/7tu+K+ha6VrbWItjt8yP3Vq47KAmlEJmlS7LVDqwJsYUE3cfCjmIXK24o4l0OVapnCKrBiiFARuhFEGh55f8Z2nkzTjiO46wa1HffvfTyeAz5AFFDzGmWO6wYLlD1f22wtpmwrCzsQ1ZpW0e9vabfpqzdv47Cpv3ztp5M9cQZjpjjekMC9MZFqbTLebSm7mSmZjPNTEn/mU6Y43pjDWmE0WtnfcOnckcTbhTmMWEXzqbSzVzelNUzOwrDlv91fTVX05f/eV080Wz9m3ffSWxart7srltjNmxW6ttbn291Epj8xSDY0WRUcdWKj75e2iUgn3QoZpnddhg1DJMJhCVLp9gEwUWyecvZVqgSJFVAJTCgI0YMvQNjxNf87+UzVkMvBnvGx4nDyh6CKVYZr9gmX3lvccFt5sIw4L+rDsTU59S9LjgdmfJnWeEFdd1FtU+Lap9UlDTkV/dllv5SFreIilrEpc15ZQ+zCl5kF3SmF3SmF3cmFXcmFXcmFl0P7PoXkbRvYxCwu5mFN7NKLqXXfIgp7RJUt6SW/k4r7otv6ajsPZpUW1nYW1nYW3nxIvbnQW3nxbUPCmoeZJf3ZFX1ZFX1Z5b2SatfCyteCwpfySWW9mjnLJWwrJLW7NLW7JLW7IIK2nJKmnJLGnJLGnOKGnJKG5OL25OL2pOL2pKK2xKK2xKLWxKLWhKLXiYUvAwJf9Bcv6D5LwHSXmNibkTliBtjJc2xkvux0nux4nvX0u7E3S9bLtHsoVtnIVtrJlNzGrrWwtUlGJKYwq5KWY3aeYy6Uw+pgAD42u9pAkLJVOWiZ4JpbBbsMyuouFRfvVDwrDAG7UnFXb75I3bJ6/fPh5ZHXC1UhRR4Rte6n25yP1CvutZqXNojlNItlNwlsPpTPtTGXZBaXaBabaBKcdOJNscTzzqn3DYL+6Qb4zcDvvF2ZxItg/KdA6VuJ3P97hU6B1W6nul0i+i2u9qtehqtV9EjV9EtV9Ele+VSp/wSu/wcq+wMs/LpR4XS9wuFLudL3Q5V+h8tsD5TIHTmXyn0HzH0HzH0DyHkDz74Dy707l2p3NtT0ttT0ltgqQ2QVKbQIlNoORooORooOTISfHhEzmHTuQcDMg56J99QJS1X5S11zdrn1/mHp+M3d7pu7zSd3imbfdI3e6RutU9datbymaX5E3OSRudEjc6JW5wTFjvlLjOMWGNQ8Ia+wQL2zjzY7FmNjELfj9AUQqvgKDKOw/YZaLyzgOvgCDBGwoYWC+DUbL1DY3N/+PY/D+Olde35lU1EoaduHGbZDXHb9Qcv14dcK06ILLS/2qF35Uy78vFnhcL3M7lup6Vup6ROIeKnUNynEOyHYOz7E9l2Adl2AWm2pxIsg5IOCSKPegXc9A35qDvrYO+tw6JYq2PJ9kFZTiFiN3O5XteLPK6XOZ7pUJ0tcovgjBCJgilqPAOq/AOK/O6XOZ5qdR9QiyKXc8VOZ8tdDpDWIFDaL5DCGF59sF5dsF5tqdzbU/l2pzKtQmS2gTlWgflHg2UHjkpPXJScviE5NBx8cEAsVVAzgH/nP2i7H1+WXv9svb4Zu7xztjlnb7LO32HZ9o2j7St7mlb3FI3uyVvckne6JJs6ZS8wSlpnUPSWoekNQ6JFvaJ5rbxZsfiFiylzlNU1z/wFAUSIwtbZ09bZ8+KusaKukbiNZHoKQqsrn8geCsBA5MbrUDIrW9obP5S2/lLbcvqW3Ir7xOGHb9WI7eAazUB16oDIqv8r1b5R1T6XanwDS/zCSv2ulToeSHf/Xyu27lct3NSt3NS17MS51CxU0i2Y3Cmw6kM25OpRwMSD/vFHfSNkdthvzjrgGS7oAynkBzXc3nuFwq9Lpf4hpf7Xqn0vVLpG17lG15JmE84oRSyMcWlUo+LJe4Xit3OF7meL3I+W+h8rtD5bKHTmQJHwkLzHULz7EPy7ILz7ILzjp3OO3Yq1yYo1zpIah2Uax2Ue+Sk9MhJ6eGTkkMnJFYBYqsAsZV/jpUoZ59v9l7frD2+mXt8M3f5ZOz0ztjhlbHNI32bR/pW97TNbmmbXVM3uqRaOqdscEpZ75i81jF5jWPyGvskC7tEM9uEBb9T7z56h8b6hseJaQhilkg+MSFP7Bse7x2a0nUFA9Om9Q2Nzfvdet7v1qV1TZLyu4Rhx69Vyy2AsMiqgKuV/hGVoohyvytlvuEl3peLPS8Welws8LhY4HGhwONCvvv5fLdzua5nJS5nxI7B2Q5B6bYnU44GJBwWxcrtiCj+2IkU+6BMpxCx67k8jwuFnpdKvMPKfK5UEIMInysV3hNDiQqvsHKvy+Vel8s9L5V5XCx1v1jifqHE7UKx6/li1/NFLueKnM8SVuh4ptAhtNA+JN8+JN8+ON8+ON/+dL7t6fxjp/KOBeXZBOVZB+UdlY0sDp2QHjwuOXhcYhUgPuAv3u8v3ucn3uuXvds3e7dP9k7vrO2eWds9Mrd7ZG5zT9/slrbZNW2TS9pG51RL59QNTqnrHVPXOqaucUixsE82t0ua/zt1TAEGZnjWNzRm+ru16e/WhdWNWcV1hGEBkVVk84+s8r9a6X+1wj+iQnSlwu9KuW94mU9YifflYq9LRQq7WOh5ocDjXL77uVzXMxLH4Gz7oPRjJ5KtjyceDUg8GpB4xD/B+niSXWCaw+ls5zNSt3N57udlShFeTphXmMwuy+xSGaEUHoRSnC9xO1/seq7Y9Vyxy7kil3PFLueKnM4WOZ4pdDxTaB9aYB9aYB9SYBdcYBucbxucb3Mqz/pUnnVQ7tHA3CMncw+fzD10IvfgidyDARKrAMkBf8l+kWSfn3ivb84en5zdPtm7vLN3eGVv98ra5pm5xSNjs1v6Jtf0jS5pli5pG5zT1junrndKW+eUttYhZY19irltkurdBxiY4Vnf0Jjp70dMfz+SX3k3vaCGMCzgaiXF/CMq/CMq/CPK/a+Ui8LL/cLKfMNKfcNKfcNKfGTmHVbifbnI82KBx4UCt/P5LjKxsDuZancy1fZkyrETyXYnU+1PZTqF5LiezXU7X+B+odDzUrFXWKlPWJlPWJl3WJl3WLl3WLlXWLnn5bIJu1TmcanU/VKp+4US9wslrhdKXC8Uu14odjlf5HK+yPksIRNFjmeKHEIL7UML7UMK7EMK7E4X2J0uOHYq3+ZUvs2pfOugvCOBeUdO5k0oxfFcqwDJ/gDJ/gDJPn/JHr+c3X45u31zdvlk7/TO3uGZvd0za5tH1lb3jM2u6Ztc0je6pFs6p21wSlvvmLrOMW2tQ5qFPTGmSJ4PSgFmBNY3NDb3t8NzfzssLatPya0kDNt6OEBuWw7JzX/LIf/NB8km2nRQtOmgaPNB0eaDok1WhPlaHvC13O+zfq/Xuj2ea3e7W+xys9hJmKvFTre1u93X7fFcv897w34fy/2+lgf8NlqJNlmJNk6Y/0Yrf8sD/pYHRJYHRBsI20+Y3/r9fuv3+a2T2dq9vmv3TNiaPb4Wu30sdvuY75ows53eq2W2aofXqh1eK7d7rdjmuXyb5/Ktnsu3ev6xxfOPLR5/bPZYusl96Wb33za5/7bR/deNbr9auv3H0u2XDW7/3uD27/Uui9e5LF7n8vNal5/Xuvy8xuWnNc4/Wjj/YOH8g7nT9+aOny1cDkoBZvDWNzQ2++sVs79eIQoMtXb0IAzreT0GBgYGxm5Y9+sx3bTHXQP51Q/SC2+DgYEJbtiL12O6aZKKe53dfTgAADoA9mJgTDctSVrFXX0AALQC1jUwppuWCEoBADoD9vzVKKd1DYx28cjGVsKr0a4B9Q5JkFQKfXIAAJiAQym6Xo12dA+m51VU1Der29XJQlPb2J6eV/7oeT//QtiVYmhoqKGhQSKRJCcnJycnSySShoaGoaEhrZ04ADAqsGevRpns+avR9u7BqGRx+M2US38mltc3P2fOzFJIXdOTy38mhUenXI3NaH3e/3yA14HxzErR0dGRkpJSXFxcXV199+7d6urq5ubmxMTE5OTk9vZ2bZ4+ADASsM7+UVp71j/a1j0YlSy5Fp95KzX3ekJ2ZmH1s1f0mVns2avRvMq71+KzbqXlXk/IvhqX0fKsn085TErR3t6enp7e1dU1MDBQU1OTnJyclJRUVFQUHx+fnJyckJDALBbRZths1/qpnrJ619mYWbTmygN0noZot1Bpl9C1EBbsaf+oqnX2jz6ekImsmIyCmIyCZElZR+8b2szc1vc2o7AmJiM/NrPgRmLO1bjM5mf9na84joqjU4rBwcHExMSenp6xsbHR0dFXr14VFBTEykhPT6+trU1ISBgcHKQLVm+UoiHazc0tukElyc3NjdJk5cmU7F3SUGpWXN7iFQeplIeALmmoW3QDUSPtetWYO1AKHMee9o1SrLNv9PGLwahkyfWE7NiMgvis4vT86ie9b5Q+81WOoimHlP/py7fikjvxWUVxmUU3EsWRsZnNnf2d/WyHx4lplKK2tlYqlY6MjIyMjPT09MTGxt5Spq6uLjY2tra2li5YHVMK2sOJLh4dHUru+l3SUFlTbYhWiAJjA+6ShoaGhlL/OdFllY8jl4cEmTO5d/SucFzD7kApcBx70jdKtqd9o49eDEYlS68n5MRmFiXmlCZkl0Sn5l2JybhwI/H8tYRz1+JvJImf9o9SDqSW0z+aJC49Gxl//lrCheuJ4bfSb6bkxmeXJOaUxmcV30gSX43LbOrsZyknlk4p0tLSqqqq2tvba2trExMTb6qQmZnZ2tqalpZGF6w+KAWBcjtXeid/0yUNZdYJaZdK61aUovQvxmI0g9wXKIV+g3W8HCXbk77RuMzia/E5cZnFieIywuKzS2LSC6LT8qNT82+m5IVFpz/pG6UcqFrO9QTxn8nS6NT86LT8W+kFcVnFCTmKAm8kSq4nilnKic2hUYqoqKjU1NSEhIQ/6UhKSmpubu7u7o6KiqILltw1610VG3QR/Z6aPJEabUZJoChFtOwIUq9XHENKVSqI7H62az1p0IDjOLWdN0STG/1Es+2ShoZKpar3JLKeT23dJEVQ+hfpDd2tDOmuR0oZilA8094IKWoagyYAAB+eSURBVKqu2nW7pKHyvA3RbrIbo1Bpg/zOQbkkOpcT5yA0OjpU6f/83OFKtymkfyo7olMKxXFMZ4CoAvW2keoasXpqDKzj5QjZnvSNpOVVRaflJ4nLkiTlNCYuu5aQ86RvhHKgajk3U/MSckrpC5GUx2QUJmSXsJQTm1OhWt2oqKjrJG7evHn9+vWEhITExMTr16/X19e/fv26s7Pzzz//pAtWrhT1rrOVNUORTJYNHMejzWTvlQ6WK4VcCqLNMFKqvBD5G5oBBCmJVSkojZ482UDqhdRPbkrrptxxyF4r3deo3NWQq0Wa+SAPQ2QOaT92yTVXnjhQdEq56sn7EU3llO6RFG8o8znUMQW3O9W+ShcbTXBd0mhSJekzEVUgndSJ16RTpi8ygeM41v5yhGwdL0c6Xr5JL7wdn12SLK0gLFFcHpddEptZHJNZfCujMC2/uqNvhHIgtZy+EXFZw830gpjM4pjM4rjskkRxmbzA+JzS5NzKx91DHcwlxNApRVJSUmRkZGRkZGFh4Z07d1pbWzMyMkpLS2NiYiIjI+/du9fR0VFTU5OUlEQXrKxrKvq6Ujo1eQLqMIPh7kP2hiIJ8tzEkILGLR08xhTKDZN4Rz6M7v+KN/RzfZTPV3qJonRCWRlEodRex6h3pEJVRglK+kYjQ0ydk8fdh7I7hoEHXWw0dx/UsQf1DFBKJ2nQhBc90gkcx9p6RyjW3jvS3vs2o6g2PqcsObcyObcyJb+65flr0iTCSLvKUarW8XJEfsjj7uGMorokaWVybmWCuDw5r+px91D7S7bDb2XTKEVlZWVERER2dnZvb29fX19fX9/Tp08zMzMjIiIiIiIiIyOJ1xUVNMdOQinqXWfLBw3y/05SKRQFkoYhvJVC6e5C1o2pStBAbebK42CctjxSseRRMYdSMDRyogsoxgckN5NRCoYBC2KlUD1M5YSRBzOqVXajPU+UkZwBKIVMLN5kFtUliMuTcytjs4pvpuU/7HzFRyBUrbVrKDazOCajKDm3MlFSkZJX9bh7mF0mmJTi9evXkZGR4eHhdXV1vTJqampu3rwZHh5+7dq16OjoyMjI169f0wXL5+5Dllzv6hpNvpGINuM5pmC6+3CVF0xzOPs8Bfmtor2RjqEerpxRpfnTKQVpfK/oBqR7asrdB7lvE1mlHKNx2j6oMj5Sup9Qvs2gv/tQSylU3CnfXkkb6GNTHDDhmnLqJwYe1DOg9E015ZCJQvRIK7DHPSO01tYz0tbzJqOoLkFSkSipvJGcmySpaOulz8xibb0jWcV3IhMlieKKREllSl71oxfDfMqJplMKHMebm5svX74cFRXV3d3d09PT09PT1dV1/fr1tLS0jIyMiIiI5uZmhmDJPZt20pGUTJq5IG48XHmOKXCG2VJSUdHKzpRmNKnDX9JMhFICjuPMv6aY+B9liEDzLxIkD1LFAeR5O/oZTdV5CNpeTA0suoF2bk8xR6k01FA+nKwZSj4maiWb0eR2R46EJTaqUtBP9FLPQJc0lDiX1ESaeVXdB3vUM8Jkj3tGHve8ySi6E5dTfjO98HbTs8fMmVkKqX/UfTO9KE5cnpxX3fpi+HEvrwOZlALH8aampvDw8Pj4+NLS0qKiotjY2Pj4+ISEhPDw8KamJm2ePn1AU1/xqfUZONkPTEP6PlLPBg0csCmFTCzeFtW13mntbuPXw1WtrXfkXvvLgtvN/GWCXSlwHB8YGCgrK7t169bly5cvX75869atsrKygYEBrZ04vWFKfU/xfYh6P9GadCcBpdBVsNbuEU4jhhJ8cjIZITpqHXIzi00pAC1B88MJxO5AKXQSrKV7RDctCpQCAHQGrPnFW920PzNBKQBAV9BdpUgubHjU2SP0+QEAAMdxHGt68VY3raa1N1ZyOyK5CAwMTHDDHna9BQMDA2M3LDqnBgwMDIzdMKFvfwAA0ANAKQAA4AaUAgAAbkApAADgBpQCAABuQCkAAOAGlAIAAG5AKQAA4AaUAgAAbjiUIjg42NbW9pCg2NraBgcHa+d0AABAC5tSiPz9T5069ezZszFBefbs2alTp0T+/lo7KQAAUGBTChsbm66urpGRkVeCMjIy0tXVZWNjo7WTAgAABTalOHTo0NjYmLAyQTA2Nnbo0CGtnRQAAChwKMXo6Gi/DjA6OgpKAQACwq0UfVxgzLAcwlksGVAKABAWbqV4yQWGYXzSyW+ZXjMBSgEAwsKhFCMjIz1csIwpKNk4XzMxMjICSgEAAsKtFN1cYBjGmYeSjek1E6AUACAs3ErxggsMw/j8i2XowekClAIAhIVDKYaGhpp5wKICTPn5FCtnaGgIlAIABEQzSqEuoBQAoF9wK8XDSYFh2KTfqgJKAQDCwq0UD1hhue8gkGejHMXyVhVQCgAQFg6lGBwcvM8DDMPYU9R6q8rg4CAoBQAICLdS3OUHhmHsb9lhLxyUAgCEhUMpXr9+Xa8m8s6v1iHsGV6/fg1KAQACwq0UdToAKAUACAuHUgwMDNTqAAMDA6AUACAgHCvZtLW1dXd31whKd3d3W1sbrGQDAALCphT+/v6BgYEdHR0DgtLR0REYGOgPq+MBgHBwrLjr5+dnY2ODflVdNmxsbPz8/LRzOgAAoAVW8QcAgBtGpeD8BQQAaAdt9geACTal0Go9DLFBGGRQWgbOoY4ASoEQgwxKy8A51BFAKRCiqaAog3CeY3IMwywtLTlLo/xrzpw56jqaRGb+GGTD0EdAKRCiO0pBPoS/UqjlC9EVNMiGoY+AUiBk6kFhGJaQkKCWUsj/SygF+S3lBe2xc+bM4T+/yD/nVM6ARsoBpggoBUKQKgV7ByaOUkspJtG9NVgUiwuNlANMEVAKhGhEKcgQ/V/1L5NS0PZYjSsFjCmMAVAKhGh8TEF+waIU8mPl6UyvKZkpeTg7vwZFhwmDbBj6CCgFQqYYlKpAkP9FqxQsPZylNFxFKdSqIU9ZmRwG2TD0EVAKhGiwt5CLIvd5pjGFanflozuTUwr+6ZPAIBuGPgJKgRDNKgXt6IBTKZj+pfqWnM5zmMCUDZTC8AClQMgUg6LteLR6gTGMEYivPCm/v2LqzJPo3kyHgFIYHqAUCJl6UBjDjCauplLw+cCfYvfWoDpQitV4mcAkAKVAiAY/V1k+/yn/JSsI5QeXTKUxlamuvjDVZCoYZMPQRyajFCg+PVQLVG3o7I2VDyze+UfE0jc4g5oc/JWC8nqKSsFylPwt7VG0/50coBQ6wiRbOZ8WoFanpW1taikF/9eTC0c1KD7F8imTp1Oeb8npWlYKnv9VC1AKHYFXK2fv85TOQzmKtmTatkV+Tb7N5nQ3uepxRseShzNG1aCmgmqwOOsXH/KciO4+aE8Cz7OtLpoqB5giaiiF2kXzaJG07uQpk3uuceo52bsf/06iwd7C/0yS/4tuTKE1QCl0BLWVgv8HyFSUgsiDep4Cm8KTmiyBYJpWCmMGzqGOMNUxBee/+Hda8mv53QdPX/xrRamb/C3xowP+YsT0aBYlED61BViAc6gjTFIpmLrK5OtBmgCTvyaUgr/W8Bcm1WPJD2iz5yRXlZJIGxQwFeAc6giTH1Pw//jl04dpy5fPaPKKhLU+kz6cNjT+rjn9AuzAOdQREH73gfPupThrg1Crq/OsGO2BarmQp5BXgqAUwv+8ASxwXhdAC2hsTKGaR63LjCnffUyiDTG5Y6mGuuVTvrvFlZWC9pzwDF+P0HJQBnkO9RHNKAVLBj6dEGdoEBjv6QO13MkTeS4DI0+hzLOqCgQohb67A5jQ/DwFt0t+SkFkU/1Kgn/f5lNPnkeRtYBFKVRf8ymTHUz9xfjVKl81M+cZ04hHngeCUugI3A1icj2QzSWXUhAZ5GvGyhM5f5LIglqVYU8nfyOjmhmpUvDvz/zLx5VPHeeBU1QKpqsPSqHj6JZSUDo2Rre6NEuTmkQ9J60UPDPLX2hzMX5cufNThIApD/+KcdaZHaaaqOsO0CYcDYKpV0/ixxTsR7F0V5b2jTN3CT5dhfNw2ipRdtniExRtNk6PGGlgRYkX5+pdTJHyyc9+NpgKYXfBno29bpwFAlpgMh8d+GQHFOo2iMl50UiVeCoFS05cZVwmB/Vi/EL9RH3S1wuUQveZpFJovh6G2CDIvUsLi/FTNAXTyk/U+VePBVAK3QeUAiGquqDazTS7GD+lcC38RJ3lENq3BJzrCZDLZK88oB1AKRDC0qlw5f6pkcX4aSvAMw+Ta7WCUj2EqeRJ3MEBwgJKgRDabqPa1fkoBf+eTDmQTyVVP8bZf6LOVAdQCgMGlAIhZEVQ7Y2qeqHazSa9GD8LLC4wOuVSlQOKL6a3TImgFPoIKAVCMLpPaZxhxM5HKVi6vTxFaz9Rpy0NlMJQAaVACGdHopUMylvVfsVUGue/+LhglzN5UDxFgSlqUAq9A5QCIZNWCsprREpBTp/0T9R5VknVHYtKUjJzFghoAVAKhLArBftbcrrWlIJnZlqn7FVSzcYndnZ3gDYBpUAInxEEpunF+HFSV6SF0wV7lZgS+f/AXzUbKIXuA0qBEJ79gb2DCTKmmETX5SkT6h5rkA1DHwGlQAgEpXfuACZAKRACQemdO4AJUAqEQFB65w5gApQCIRCU3rkDmOD4xgsABEeb/QFgAsYUCIGg9M4dwAQoBUIgKL1zBzABSoEQCErv3AFMgFIgBILSO3cAE6AUCIGg9M4dwAR/pUgQieoR1sMQG4RyUPWiOdgcmnOINr1eNPHUJt0hk4EclMYLZ3cHCAgPpZA1B3StATfQBqEcVILI0nKOZYJKLpTpCZYYRiQpXk0RRVAICmdzBwgK3zFFvWgOKIW6KAWVIBLVJ1iqdiiE6fWiOaT3CZYaEXtZUEgKZ3YHCAwoBUKUB+qiBBxPsKSeRZTpyt1XuWtPOSgkhTO7AwQGlAIhpKDqRZaieprTiDKd2ns187k/ERSawhndAUIDSoEQUlCy+eB6kfJUAsp0UApAc4BSIER58k8OqYMhTQelADQHKAVC5EERkwgTL5XuD5CmwzwFoDFAKRCi+JrAUqlPyc4k+nT47gPQEGooBapvzOncGQbyj1+lH60pvspEnQ6/pwA0hhq/vFK5OdZoPQyxQWAYJj99svMmm1GwFCFOJ01WYBgGv9EEpgY894EQCErv3AFMgFIgBILSO3cAE6AUCIGg9M4dwAQoBUIgKL1zBzABSoEQCErv3AFMgFIgBILSO3cAE2xKoWW0GbZ20P45NEiEvowAjsOYAikQlN65A5gApUAIBKV37gAmQCkQAkHpnTuACVAKhEBQeucOYAKUAiEQlN65A5jgpRSKdVKQPQlkkA1COShhVvHHcVyzOzCoXCnY3sEo4FYK+oeYNV4PQ2wQykEJsYo/gh0YFEHB9g7GBKdSKC8Mj2xBG4NsEEpBCbCK/wSavWiUKwVLHBkJfJQCIy/DBkrBH3JQQqziL/8XKAUwVdSb0aSuCK3BehhigyAFJcQq/or/gVIAU0UdpUCnEwbaIEhBCbGKvwxQCmDq8FYKxC3CIBuEIihBVvGXAUoBTB1+SoG6ORhog5AHJdAq/sxJUwCUwjjhoxRK02SkRqnRehhig5AFJdQq/owpmggKSeGc7gCh4FQKyo2vUqPUZD0MsUHIvz8SbBV/HMc1vQODqlLA9g7GAJdSKC/hT3cXrKF6GGKDwARfxR/BDgyKKwXbOxgT8NwHQiAovXMHMAFKgRAISu/cAUyAUiAEgtI7dwAToBQIgaD0zh3ABCgFQiAovXMHMAFKgRAISu/cAUywKYWW0WbY2kH759AgEfoyAjgOYwqkQFB65w5gApQCIRCU3rkDmAClQAgEpXfuACZAKRACQemdO4AJUAqEQFB65w5ggt9T5/JpaFjzSh2UgxJmFX+N78BADgq2dzAe+Dx1Lm8FLDtKTLkehtgglIMSYBV/FDswyIOC7R2MCj5KoWgD6JYtMcgGoRSUAKv4I9mBQRYUbO9gXKg1T4FwyV2DbBDkoIRYxR/JDgwkpYDtHYwInkpB3JAiXAbNIBsEKSghV/GX5dCMzNNeKdjeweBRd0wBSxupAXlWWMBV/NnS1YfmSsH2DkaAmt+SwiBTHRRBCbqKv2avGvVKwfYOxoG6v6eg3/lSA/UwxAYhD0rIVfw13ZOVrhRs72A0cCqF8vdfMKZQB8X3R4Kt4q/5HRiUfmgD2zsYDXyUQtEclN5oth4qDYJPCs77yW4UdeZEfg4FWsUfyQ4MpK/PYXsHI0K932iiG2nK3am+oKsSfSKf19oEE3YVfzQ7MGCwvYNRoovPfRCv5X/ZhwksGVQzaxmDbOUCNgxAQHRRKfin8CxKKHSnJhpE8IYBCIKOKgXtQIC2SjCm0DKgFMaJLioF+e5jElXSnbalOzXRIKAUxoluKQVlAkL+gnOMoGujCXmtBPSOCFAK40S3lEI1ZYrjCNqbGq3dsBhkKxe8YQCCwKYUWoalJtxhqF+sFtDWmTNwBLyCgBzdGlNMugEx1VbYdmaQrVyQhgEIjm4pBW0in5ro5ieSQbZyXWgYgPbRXaUg93Pyf1k0hX+6djDIVi54wwAEQReVQq4RqgLBoggwptAOoBTGiW4pBaVvU9SBpefDmEJrgFIYJ+ooBcrFCJjuKZjuSsjKwhM0FWdD2akgq/hrfgcGUlCwvYMRwV8p6kVztL2tg763EuX6a38VfyQ7MMiCgu0djAu+SlEvshSJkK1OYaANQikoAVbxR7IDA0kpYHsHI4KfUhDLlKBbx8ZAGwQ5KCFW8Vf+v4ZWxaW7UrC9g+HDSykm1lQCpVATUlACruKv4R0YKLdUsL2DkcBDKRIsZYuwgVKoB3nyT+BV/DW3AwPDmAK2dzBwOJVCrhOgFGpDVlvSlzBaX8WfQMN7iCEpnK87QOtwKIXqaomIxpoG2SDkQQm5ir8CzezAwHClYHsHA0ed31PAmEJNFF8TCLOKP5IdGBSDTdjewZgApUCIvFMJtIo/kh0YSEohzPYOgCDwVAqluxAUo0yDbBAYhgm5ij/5rebuGUlXSqvbOwDColvPfRgYEJTeuQOYAKVACASld+4AJkApEAJB6Z07gAlQCoRAUHrnDmAClAIhEJTeuQOYAKVACASld+4AJtiUQstoM2ztoP1zaJAIfRkBHIcxBVIgKL1zBzABSoEQCErv3AFMgFIgBILSO3cAE6AUCIGg9M4dwAQoBUIgKL1zBzDBa80rpZloNGsbGWSDUA5KkFX8Sf/U0FNcNFdK69s7ANqHj1KIkD0oSOfOgFAOSvur+MvR5A4MKldKgO0dAO3DrRSk9ZRQ1sMQG4RSUAKs4j+BZndgoFwp2N7BSAClQAg5KMFW8df0DgxKVwq2dzAa+CmFfKoCGoQ6kIISbBV/je/AQL5SsL2D8cCtFOT1EpXXTtRoPQyxQZCCEmgVfwQ7MJCnumF7B+NBzW9JkW3sYJANguH7I62t4o9kBwZZULC9g3Gh7u8pYLF2NaCb69HeKv6IdmDAYHsHo4RTKWCx9skjC0qoVfxJIJrR1HThvNwBQsBHKRRCAYu1q4X8HAq0ij+ulAhKAUwBPncfpJtgVDtaG2aDwIRfxR/X+A4MylcKtncwFuC5D4RAUHrnDmAClAIhEJTeuQOYAKVACASld+4AJkApEAJB6Z07gAlQCoRAUHrnDmAClAIhEJTeuQOYYFMKLaPNsLWD9s+hQSL0ZQRwHMYUSIGg9M4dwAQoBUIgKL1zBzABSoEQCErv3AFMgFIgBILSO3cAE6AUCIGg9M4dwAQ/pVA8B4TqmUGDbBDKQQmxij+CHRgUQcH2DsYED6UgrXMFq+OphXJQQqzij2AHBpJSwPYORgSvdTSRPWtO486QUApKiFX8UayrLg8KFm03KtRbyQZhPQyxQZCDEmQVf1AKQFNwKQVx66GYp0ClGgbZIEhBCbOKP4odGJSUArZ3MBr4KIWiHbBufTm1ehhigyAFJcwq/ih2YCDflsL2DsYDvzGFIhnVkrsG2SAYvibQ2ir+ymhoBwb6KwXbOxg6oBQIobul194q/ipoZsqJ4UrB9g4GDp8ZTcqHFzQIvsiCEmoVfyQ7MNA3DNjewdDh/pa0XjRH6X4Ubkd5I+9UAq3ij2QHBtovxWB7B4OH1280FXfBMMWtDpjwq/hrfgcG8jQtbO9gPMBzHwiBoPTOHcAEKAVCICi9cwcwAUqBEAhK79wBTIBSIASC0jt3ABOgFAiBoPTOHcAEKAVCICi9cwcwwaYUAKALaLM/AEzAmAIhEJTeuQOYAKVACASld+4AJkApEAJB6Z07gAlQCoRAUHrnDmAClAIhEJTeuQOY4LXirjLw1DlfMNITYiSIx+xQp8vQ9A4MSlcKtncwGjiVQnm5NaWVEDRaD0NsEGS1tSQtNYORFpBAmo5iBwbFlYLtHYwJ7pVsyGsfJFjCirtqQKsUjAtIIE/XDAxBocIgG4Y+os48BbIBBb07/YdpTCH/yEecjqQvyz9CYHsHo0INpUA3oKB1ZwDQzvXMURqjoUxHswMDBts7GCX8lQKpUBhmgxB4ngLNDgwkpYDtHYwIvkpB3V9C4/UwxAbBcEuvuD9Am45mXXWlMYWmC2d0BwgNT6VAtvQyvTsDgVkpJj6A0aaDUgCag6dSoFt7mdadgcCiFMRbxOlIdmAgzWjC9g5GBD+lQHcbSuvOUGCcp6D7FhNFOoodGORBwfYORgUoBUIwHfiNpsZ3YCBfKdjewXiA5z4QAkHpnTuACVAKhEBQeucOYAKUAiEQlN65A5gApUAIBKV37gAmQCkQAkHpnTuACVAKhEBQeucOYIJNKbSMNsPWDto/hwaJ0JcRwHEYUyAFgtI7dwAToBQIgaD0zh3ABCgFQiAovXMHMAFKgRAISu/cAUyAUiAEgtI7dwATfJSCtPYaPAikDpjQT4ih2IFBfqVgewejglMplB4jhcXa1YLcqYRYxR/JDgykhgHbOxgRnErBtHiKputhiA2CVim0uIo/kh0Y5A0DtncwKviMKUi3HMiW0zTIBsE0ptDWKv4kNPeZT3OlYHsHI4DHPAVxI2yZgHTZXYNsELS39NpbxZ+EBj/zVa8UbO9gDPCZ0awXzbG0tGRshZqphyE2CKHnKeRosi+rXCnY3sEoUOvuA+EieQbZIBjmKbS1ij/pvQb7MuVKwfYORgKXUlAbAizBrAbMSqGVVfwVbzUp78pXCrZ3MBa4lIKqDKAUasCiFFpZxV/uHJ1SwPYOxgKfb0mV74G19d0HnxSc95PdKOrMCeM8hbZW8Ze9R6YUsGi70aBzv9FUfUFXJfpEPq+1CSb0bzRxHJQC0Ay6+NwH8Vr+l32YwJJBNbOWMchWLmDDAAREF5WCfwrPolQzaEdWDLKVC94wAEHQUaWg7bG0VYIxhZYBpTBOdFEpMNLdxySqpDttS3dqokFAKYwT3VIK8uc/+QXnGEHXRhPyWgnoHRGgFMaJbimFasoUxxGgFBpH8IYBCAKbUmgZlppwh6F+sVpAW2fOwBHwCgJydGtMMekGxFRbYduZQbZyQRoGIDi6pRS0iXxqopufSAbZynWhYQDaR3eVgtzPyf9l0RT+6drBIFu54A0DEARdVAq5RqgKBIsi8LxJmdzdzdSDMhhAKYwT3VIKShelqANLB4YxhdYApTBO+CiF4gkxLa95RSsN5M98LY8R1AUT/gkxzT/dh9E1DNjeweDhVAryg+boHjpXb/ZBX5DXX7hV/DW/AwO5YcD2DsYDl1JQ1jRCtsSRQTYIWqXQ5ir+KHZgkAUF2zsYF1xKAWteTQGmMYW2VvFHsgMDaUwB2zsYETyUgjKmQHNLapANgqwUXLMIaFbxR7ADg+JKwfYOxgTnPAX5DjTBcs4cUAr+CD1PgaPYgYF0pWB7ByOCx3cfisl1ywS4HVUHhnkKra3ij2QHBrq7D9jewfBR8/cUyJZiNsgGwawUWlnFH80ODIqpbpjAMibUUwp0a7YbZINgUQptrOKPZjYaprqNE26lUKgDui/NDbRBMM5TaGkVfyQ7MNBNYGl1ewdAEHiMKRQT6wi3lTPIBoHBbzQ16Q4QEt167sPAgKD0zh3ABCgFQiAovXMHMAFKgRAISu/cAUyAUiAEgtI7dwAToBQIgaD0zh3ABCgFQiAovXMHMMGmFFpGm2FrB+2fQ4NE6MsI4DiMKZACQemdO4AJUAqEQFB65w5gApQCIRCU3rkDmAClQAgEpXfuACZAKRACQemdO4AJ/kqRIFJ5CEj+cNLUnw8yyAaB6dITYgjWvBJsewdA+6ix5hW1NSgeO9bA4+gG2SDkQQm4ir/Gd2CQBSXk9g6A9uE7plBZvl+5cUx5iRuDbBC0SqG9VfzR7MCAwfYORsmklUJZG6b8oWKQDYJpTKGlVfxhzStAc0xWKajSMNVBhUE2CLJScMwioEhHswODQilgewdjApQCIULPUyDZgUEWFGzvYFyAUiCEYZ5Ca6v4I9mBQXWqG7Z3MAZgngIhzEqhlVX8KWhoYXX6KwXbOxg68N0HQliUQhur+Cujqb5Me6VgeweDRw2loLY++D0FF4zzFFpaxR/JDgzkoGB7B+NBjV9eyW5JFXngN5rsYIL/RhPBDgyKKwXbOxgT8NwHQiAovXMHMAFKgRAISu/cAUyAUiAEgtI7dwAToBQIgaD0zh3ABCgFQiAovXMHMAFKgRAISu/cAUywKQUA6ALa7A8AE3AZAADgBpQCAABuQCkAAOAGlAIAAG5AKQAA4AaUAgAAbkApAADgBpQCAABuQCkAAOAGlAIAAG5AKQAA4AaUAgAAbkApAADg5v8DU21YL52ILFcAAAAASUVORK5CYII=" alt="" />
本示例中使用到的命名空间:
using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using System.IO;
using System.Text;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.HPSF;
using NPOI.POIFS.FileSystem;
using NPOI.SS.Util;
导出按钮代码:
protected void btnExportClick(object sender, EventArgs e)
{
// 文件名最好使用英文,中文可能会出现乱码或者丢失文件后缀
string filename = "ReportExport" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
Response.Clear();
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Type", "applicationnd.ms-excel");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls"); // getData()函数返回一个DataTable类型,在本实例中用于获得要导出的数据,可根据项目情况替换该函数
Response.BinaryWrite(getExportContent(getData()).GetBuffer());
Response.Flush();
// 若使用Response.End方法会导致ThreadAbortException 异常,使用下面的语句替换Response.End方法
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
负责生成导出信息的方法getExportContent示例代码如下:
private MemoryStream getExportContent(DataTable table)
{
// 添加Excel元数据信息
HSSFWorkbook book = new HSSFWorkbook();
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
dsi.Company = "MyCompany";
book.DocumentSummaryInformation = dsi; SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
si.Subject = "MySubject";
book.SummaryInformation = si; // 声明必要的变量
MemoryStream ms = new MemoryStream();
ISheet sheet = book.CreateSheet("sheet1");
IRow erow = sheet.CreateRow(); // 设置列宽,列宽的单位是256分之一字符,所以10*256表示10个字符宽度
sheet.SetColumnWidth(, * );
sheet.SetColumnWidth(, * );
sheet.SetColumnWidth(, * );
sheet.SetColumnWidth(, * ); // 增加表头
buildSheetTitle(book); // 增加内容,标题占两行,从第三行添加数据内容。
// 在NPOI中行列以0作为起始
int rindex = ;
foreach (DataRow r in table.Rows)
{
erow = sheet.CreateRow(rindex);
// 序号
erow.CreateCell().SetCellValue(rindex - );
for (int c = ; c < table.Columns.Count; c++)
{
erow.CreateCell(c + ).SetCellValue(r[c].ToString());
}
rindex++;
}
// 对相同的列进行纵向合并
mergeColumn(book); book.Write(ms);
ms.Flush();
ms.Position = ;
return ms;
}
增加表头方法buildSheetTitle示例代码:
private void buildSheetTitle(HSSFWorkbook book)
{
// 定义必要变量
ISheet sheet = book.GetSheetAt();
IRow erow = sheet.CreateRow();
ICell cell = null;
// 单元格样式
ICellStyle style = book.CreateCellStyle();
style.Alignment = HorizontalAlignment.CENTER;
style.VerticalAlignment = VerticalAlignment.CENTER;
IFont font = book.CreateFont();
font.FontHeightInPoints = ;
font.FontName = "宋体";
style.SetFont(font); // 增加第一行标题
cell = erow.CreateCell();
cell.SetCellValue("序号");
cell.CellStyle = style;
sheet.AddMergedRegion(new CellRangeAddress(, , , )); cell = erow.CreateCell();
cell.SetCellValue("装置名称");
cell.CellStyle = style;
sheet.AddMergedRegion(new CellRangeAddress(, , , )); cell = erow.CreateCell();
cell.SetCellValue("物料信息");
cell.CellStyle = style;
sheet.AddMergedRegion(new CellRangeAddress(, , , )); // 增加第二行标题
erow = sheet.CreateRow();
cell = erow.CreateCell();
cell.SetCellValue("物料名称");
cell.CellStyle = style;
cell = erow.CreateCell();
cell.SetCellValue("小计");
cell.CellStyle = style;
}
合并单元格方法mergeColumn示例代码如下:
private void mergeColumn(HSSFWorkbook book)
{
ISheet sheet = book.GetSheetAt();
int cunit = ;
// 合并单元格跨越的行数
int rspan = ;
// 需合并单元格的起始行,前两行为标题,默认起始行是第三行
int srow = ; // 单元格字体样式
IFont font = book.CreateFont();
font.FontHeightInPoints = ;
font.FontName = "宋体"; // 非合并单元格样式
ICellStyle style = book.CreateCellStyle();
style.SetFont(font); // 合并单元格样式
ICellStyle mstyle = book.CreateCellStyle();
mstyle.Alignment = HorizontalAlignment.CENTER;
mstyle.VerticalAlignment = VerticalAlignment.CENTER;
mstyle.SetFont(font); // 合并单元格
string oldvalue = string.Empty;
for (int r = ; r < sheet.PhysicalNumberOfRows; r++)
{
if (sheet.GetRow(r).GetCell(cunit).StringCellValue == oldvalue)
{
rspan++;
}
else
{
// 添加合并区域
sheet.AddMergedRegion(new CellRangeAddress(srow, srow + rspan, , ));
oldvalue = sheet.GetRow(r).GetCell(cunit).StringCellValue;
srow = r;
rspan = ;
}
} // 对未合并的单元格进行合并
if (rspan != )
{
sheet.AddMergedRegion(new CellRangeAddress(srow, srow + rspan, , ));
} // 调整合并单元格的样式
for (int c = ; c < ; c++)
{
for (int r = ; r < sheet.PhysicalNumberOfRows; r++)
{
if (c == cunit)
{
sheet.GetRow(r).GetCell(c).CellStyle = mstyle;
}
else
{
sheet.GetRow(r).GetCell(c).CellStyle = style;
}
}
}
}
导出后的文件内容:
aaarticlea/png;base64,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" alt="" />