Jar包

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAn0AAADrCAIAAACTsbftAAAgAElEQVR4nO2d3W8TV/jn+QN617teV/wDvaki9Wp/F0irXfYKBbVp9yIyXISuNkq7ChA2RJRpqpK1hAsXFtQgtSCKiJclbh2UZWGhlGq1wiLJz8HveMjMmDFYctxu01TZi/HMnJfnnDlOPCaJn4+iyHNmzsvMHJ/vPM85nmffphqV/zuiL06W/+9/KTz5T88fHvl99l/+94//5l9/+ffF++2/wv3/kP91VLG0DslFB/ZFUuGU3asakL4ikzimpc3tH7OXSGvHjonO2CR2mmktkaH2ZhLHiJRM4tixY8eYQ8hd8D4E2THsUzzOWP5vK//7s+X/NbR879Ple//x99l/uf/jv1385dC//q9P//Xe0PL//CT/63+uvwhJuUJXxVx0YN9ANBdiDUhfgbKLIIgQVd3d3Nz8+//V69X53JP/+n/+x7979N+HC5lbf7V6M2yEqbupyL59+/ahsYsgCIL0hA50F0EQBEGQbYK6iyAIgiC9A3UXQRAEQXoH6i6CIAiC9A7UXQRBEATpHUq6m61Ytx8++37ut8C/2w+fZStW2I1GEARBkF2Kku7O3n+69LzYarX+5FhbW/M+t1qtpefF2ftPw240giAIguxSlHT3ws179Xp9Y2PjH4KNjY21tbXGysP19XUvpV6vX7h5L+Q2IwiCeJhpDV9RhewmlHQ3em3etu2/CdbX15vNZv3ut/bMh61Wy0u3bTt6bT7sRveIXr7FCt+YhSBbR/zyr0yC2kG/chJB3gpKujt9Zc6yrL8IGo1G7ZfpV1/tf/PmzavMfKvVctIty5q+Mhd2o3vEFrSw/farffvAjJK9qLtvl/aLfZkXCHup7JhupjVomM8kwEOJkR7MCJfmZ/SaQSqGsG3Ckv1zFOQMuAhd0itWIs20xpTtvKxZ1EruABA3lye77Q+ou1tCrSMF9Enq2jv3MJFhy+uPd6cq6e5UfNYwjD9cms2muRCzTr1nGIZ5Z6p2Zn+z2XR2GYYxFZ8Nu9E7lVTEk85UhHv3pHwv8hYhbKJMwhUBM60d88ZsXxncMR+UTz7dH7DAjNLStLRJRgkgWiFoG98a0TgGuGZFF4GvfXswumumNU2jG0M1TlIvH0CBtW79q+/uQN3tFNWOFNwniWtPHUH2iK51s52Nku6eiF3Xdb3p0mg0rOPvOv+dD41Gw9ml6/qJ2PWwG70bSEVk9qt8L/IWcQcBavD3NtqDC+DWNNPasUSCTfcOBDOKSwMdp1RhfNvY1ghKFpWuXPs24S6B007iFOgzkiglo7LcsYDLoO8sq22i3JGC+6R3d1i3EFl4n8zVK+nu2LmrlUql4WLbtvXNB5VKxfziHdu2bduuVqurq6uvX7+uVCpj565yBfAOVj+FsPxSkX0D0VR0wEt1jyJyyQ+QlhxlD861SxLERaDCMYDFipFbtPxesi6gWc7uVETgwEa6hve8zcWeE40Um5ub3nDBpnPHgeMXkCgXPmnbgoqhxzbCSqGycYNf18InUQW5BimbKG8fWRbte2evvnMehJcU7d0tEdyRFPpkJnEskQFuKHFwn8iumu6OaPFisViv1y3LKhQKhUKhWCzqU++Xk5PFYrFarX4Z/WH68q0XL17k8/kRLU7nTkVYsaBTfBEidMWROSfZ1ySlA4Ql+wcPRHMKUY6Ci5VkFB8B7vXrykUjvDvakWJ0TYcMMdXIDABy3SXFmknnI8mq6C4wE3ZMaE10qrucxvGPELLatwvjVfQfJSibR9EoJecdGbezmda0REJLZKgdqLtbIrAjqfTJttMBfMzrMy+Eku4OT8by+XytVltdXT18PDY0cfHo2Usfn/ju8PHY0bOX4jfnnfSvL89ms9nhyRiVmXepsime5pA7wM9BByiVnIsOkNJNZvCMWlqYZcWy9nYuOiCxSYV76YcAzuINPQIxYqY16kuvbu8SG0KzTVAOnCh46Pfdc9uyd2WGK3sRwNq3ieBygUaPwmwfYTHTR2bSaZOfAUbd3RLBHUnV3gU6Evtt6oM7pKS7Q+MzKysrhmFUq9Vqtfrzg99TD56kHjxJLvyaXHiczRWy2exnpy5OX55dWloaGp+hMivprpqsbkV3+Yxeorcp8N7KdBdW1k69y0BdpDKTRjDqbpgAX3aphDIiAc4cguqportiX5t7YKC8S6oTy27QiNcdTzPRXH7Slfc1qAzDmYTITnJ0F5rc7R/TqisEdySFPulKM7uCnRPwvX9jlHT30Ki2vLys67qu6+Vy+ciZ+OD4+cPj5wfHzx85Ey+Xy59OXNAu3SqXy4uLi4dGNTo3KTepaFseabdte2PbuqtUsquauWiUmj3lTlviZwZlFyxG7tbm9xKFEw5p1N0wgUcJWiAUpmk3OT0Gh54g3eV+eARMdcraJq8Osq3Fjwlw7dtBsurV2+aW6MjqdUz0RAI01NHe7RLBHUmhT2bo9czkBtq7AAdHTudyOcMwSqVSPp9fgXj58qVhGLlc7uDIaTa/7zaVL1Pavu6qlOxbq/6hoKZ1uq6KPMQ7zlNW+V7atG07ryMRtHd7AWcPEb/WoRLIHMHLOwVDT/CEKzDfyjVD3DZpddyo5sma4CLAtW+Jdg1iS9ZNYR4B+B/4EumMpcRYsai7XSK4I20G90nOFX0M6np9cXuUdPdA5GSpVDJN86e7j7XEnc/P/cj/1Wo127ZLpdKByMmwG70HQWHdW2zZWdYXXrbtAv5SGtqJuovsSJR0d3BMu5GcM03TkFKr1W4k5wbHtOASERp8XdXeAmUXQRAhSrqbXHg0PDHz0SejgX/DEzPJhUdhN3pP0fY/o7GLIAjSF2DcewRBEATpHai7CIIgCNI7UHcRBEEQpHeg7iIIgiBI70DdRRAEQZDeoaS72Yp1++Gz7+d+C/y7/fBZtmKF3WgEQRAE2aUo6e7s/adLz4utVutPjrW1Ne9zq9Vael6cvf807EYjCIIgyC5FSXcv3LxXr9c3Njb+IdjY2FhbW2usPFxfX/dS6vX6hZv3Qm4zgiCIR78EbUX2DEq6G702b9v23wTr6+vNZrN+91t75sNWq+Wl27YdvTYvK0sUVGCb9P6FT/iKKQTZKciiLFE78D2RyA5ASXenr8xZlvUXQaPRqP0y/eqr/W/evHmVmW+1Wk66ZVnTV+ZkZXVTd4kwQUEqKAzdtxkYHkGQF3V3L+G/mp2NZw9GjOOCF3hHQiF9nES4CoVjJBnFTaLeNS9QGnHshjBfVglFROJjNUij9UGxFxn8EL9e9CM4TC8SBNi3ua8GF1dDFH+3jXMPmV4f0Mf3Dkq6OxWfNQzjD5dms2kuxKxT7xmGYd6Zqp3Z32w2nV2GYUzFZ2VldU93xYFzoeNER8rbI8+L7BEIm8iPsyKIWOeO+XTkPiKiLD2s+2HZgSpUjpFl9PNDjwwyfYGykHt6p7tmWtM02k9M+Y0lceH4qAesdes/Wbg7UHc7A+zbkmCO3n7gKjNxAMlbHNjH9xhKunsidl3X9aZLo9Gwjr/r/Hc+NBoNZ5eu6ydi12VldUt3c9GBfZFIcGFts1RQrcwMDsqL7EncQYALAuuFhtXSptCtye5QiXOvcowkEW6SVF/EZ2GmtWOJRKjBGbhow05LmMB//qbkTBiV5Y71C+Kssb6xrLqHd+PgrwZwIF+AZ9+KvgB9MlevpLtj565WKpWGi23b1jcfVCoV84t3bNu2bbtara6urr5+/bpSqYydu8oVQMeepSLIC2LlptqGZiTlH0WIXztsnq+IQXH0YO3MRQcGotEI1y7FvF6NfsxcKimSSkXQWN5deM/bXLDQQKkE0kXqKSkaPEaSCBdDemKFketFocvDDYoERhtmE8WNZsuinZ/s+XkBfQl3aB8M62Hg3yLpV0OinJnEsUQGuKFECX0iu2q6O6LFi8VivV63LKtQKBQKhWKxqE+9X05OFovFarX6ZfSH6cu3Xrx4kc/nR7Q4nTsVYeLdE1HnaQl2jiK0ylFcLvS7d+x2dTcV8ZVSPF8bpLu5aMTd7Z+FI8UYZWhXQUw1MgNAgO66Mhcc7JWbzVQ5RphI1yV6FCDMFJnuko8cPdJdaiynbB5Fo5ScombczmZa0xIJLZGhdqDudgrXtzv7ahC0nQ7cbpzfhRmejOXz+Vqttrq6evh4bGji4tGzlz4+8d3h47GjZy/Fb8476V9fns1ms8OTMSozo1reJqtmno6RO6DPRBqkuynQfBXqLpEq8icH27uAxYuB7HcZZlpjVzNtyd6VuMzYKhSPESTyVQtX9Ko4xYmNnukuLMGMezhAJgmLmT4yk06bGPe+e/h9W/bVkPUdJx+/bI/th31wh5R0d2h8ZmVlxTCMarVarVZ/fvB76sGT1IMnyYVfkwuPs7lCNpv97NTF6cuzS0tLQ+MzVOYOdJffwX8mBI50XG/Dz7xd3c1FB/bx8o+6u5sAvuxCzye3U5CNNwsCF6B07l1WbJLQ70dKXW/mP4lT5iddeV+DytlnEqLWOroLTe72j2nVPdz+IvlqSB/Z3I7Ium7UlXvPoKS7h0a15eVlXdd1XS+Xy0fOxAfHzx8ePz84fv7ImXi5XP504oJ26Va5XF5cXDw0qtG5ST8zqVGcn9lPl9q7dNFb8TP7LmXCuex95BzOcF7IPs9FB9De3X3Ak0q0QEie0AmjinDl0oUGViE6RnnCi5nfNXn7IXh+NyC9G0iWwnrb3LqdgN9PHTumJRKgRwDt3W0S2Lc70UxmPTO5gfYuwMGR07lczjCMUqmUz+dXIF6+fGkYRi6XOzhyms3vL58aiEYjtNgK1lX1SHepNogmegN0l/AxD0QiaO/uPjh7iPi5BL00icjB/BYGWMTEzp1yVagcI2obdBL0AMhZdW9bd9ttEluybgrzrCGa2eZ+8eRUwNwY1N3tAfTtTdFXI0AzOf/0Mc9+Vujgewol3T0QOVkqlUzT/OnuYy1x5/NzP/J/tVrNtu1SqXQgcjLsRgP0XuZQWBExKtLVFw61UJD+xpjcibqL7EiUdHdwTLuRnDNN05BSq9VuJOcGx7TgErsNviYS2Umg7CIIIkRJd5MLj4YnZj76ZDTwb3hiJrnwKOxGU7T9xD00PXtfI4IgCLJXwLj3CIIgCNI7UHcRBEEQpHeg7iIIgiBI70DdRRAEQZDegbqLIAiCIL1DSXezFev2w2ffz/0W+Hf74bNsxQq70QiCIAiyS1HS3dn7T5eeF1ut1p8ca2tr3udWq7X0vDh7/2nYjUYQBEGQXYqS7l64ea9er29sbPxDsLGxsba21lh5uL6+7qXU6/ULN++F3GYEQRCPfgnaiuwZlHQ3em3etu2/CdbX15vNZv3ut/bMh61Wy0u3bTt6bZ7KLHuxUyrCvH0C3wKFIEjHyKIxse+kRolG3jZKujt9Zc6yrL8IGo1G7ZfpV1/tf/PmzavMfKvVctIty5q+MkdlRt1Fdj7+q9nBSAVBif5r4rnRn4s5xEU2CsoIt83PLgyuy+eSFSVqoTBxi7ASyYc9oIMSAhVDUQsZ/BC/XvQjOEwvIoMLy0GETu7kW+DmoaNvHWM7uKxj7imUdHcqPmsYxh8uzWbTXIhZp94zDMO8M1U7s7/ZbDq7DMOYis8q187pLoK8BQibCAybF5BIhGHh7C5fsdxRiRmoBEHxiHjuQNuI/PBIBeaSFSVooSBxO/CxnDSN9hNTjyqSGDd81APWuvWvvrsDdXfL+Lel42/BppsMBqMiD++PMIBqunsidl3X9aZLo9Gwjr/r/Hc+NBoNZ5eu6ydi15VrR91FdhruIMAFgeUi1LkbbDBexjj2IuMc09KmOGQ4M0kJDl1MjN20diyRCI6uoFCUWxzbQjhxe3AVOOUzQeaoUOri2IdMq5hj/YI4u61vLKuu4d+3jr8FfgmefQt+Sdiy9y5Kujt27mqlUmm42LZtffNBpVIxv3jHtm3btqvV6urq6uvXryuVyti5q1RmN14eERN+MxVxPoJ+ZjfFD2tLJUVSqci+feiNRkLBe97mgoVqaVOYKNBSXt3YEN8ipRVpJTfeBSsiaEFQMeaDg/KGpru+VS+4hvKw94zO8nO5XKBjtHe3BnlPOv0WEEcmMsANJbL2ieyq6e6IFi8Wi/V63bKsQqFQKBSKxaI+9X45OVksFqvV6pfRH6Yv33rx4kU+nx/R4lRmQkrbAeT9OPIS3c1FI2RkejLCPJrISDgQU42g+QnbpOQEpTfUu1t8+FfRoz3jbWNHH3oalHw8kCkiGDOeTHy7uut/Zi+MolFKGlaM29lMa1oioSUy1A7U3S0R3G/F3wLySPCW4vwuzPBkLJ/P12q11dXVw8djQxMXj5699PGJ7w4fjx09eyl+c95J//rybDabHZ6MUZmp+PBOCL0BQlHF9i5g8WKseSQszLTGLkFStHc3qVUm6YTs2V3J3uUyAm0j7DfRSMXmEicKWyhN3CKCxoNGj8JsH2Ex00dm0mkT4953B/r+d/QtoEtxPDQBTqA+uENKujs0PrOysmIYRrVarVarPz/4PfXgSerBk+TCr8mFx9lcIZvNfnbq4vTl2aWlpaHxGSrz1nQ3Fx3wjiONYNRdJASALzvoNwt2pvljkmi3wJlMr1qhxzXZcl+BlSD3LksIW3eJs+MnXfkLoNhkwbOEo7vQ5G7/mFZdgLn9nXwLoFTWCcOp+t6/MUq6e2hUW15e1nVd1/VyuXzkTHxw/Pzh8fOD4+ePnImXy+VPJy5ol26Vy+XFxcVDoxqVmfMzE78VcnXXS/IO9n3R5MQw6i4SAvCkEi0QvCkKjQ+BM1XAyihJFcJiRAVKcwkTe+lnlizhpuacqXnsQE+6lkiAZjzau92Au/vq3wI2nXycIjfQ3gU4OHI6l8sZhlEqlfL5/ArEy5cvDcPI5XIHR05TmV2tTEUoA5ZaV8XrLuFjHohE0N5FQoSzhwiLlUoQJEK/WxT84pUdkvjS+AXRYNtEBUpygYk91N12/WJL1k1hHhDAOWo3nbGUGCsWdbcLQEqo+C3gCmL8OMfcKQJxB9+bKOnugcjJUqlkmuZPdx9riTufn/uR/6vVarZtl0qlA5GTVOaOtBKFFdkTbFmo+sLLtl3Ev1tmdqLuIjsSJd0dHNNuJOdM0zSk1Gq1G8m5wTHKz9zRG6jwdVXIngBlF0EQIUq6m1x4NDwx89Eno4F/wxMzyYVHVAWK9quz4gqNXQRBEGRPg3HvEQRBEKR3oO4iCIIgSO9A3UUQBEGQ3oG6iyAIgiC9A3UXQRAEQXqHku5mK9bth8++n/st8O/2w2fZihV2oxEEQRBkl6Kku7P3ny49L7ZarT851tbWvM+tVmvpeXH2/tOwG40gCIIguxQl3b1w8169Xt/Y2PiHYGNjY21trbHycH193Uup1+sXbt4Luc0IgiAe/RK0FdkzKOlu9Nq8bdt/E6yvrzebzfrdb+2ZD1utlpdu23b02vy2WoTvrJKD1wdBWMTv+cok2NdPo0Qjbxsl3Z2+MmdZ1l8EjUaj9sv0q6/2v3nz5lVmvtVqOemWZU1fmdtWi2S60n6pleS1VrnoAJ8ZTARKper1UtmsgtKIuA+iI8GK4NrFFaHuhoH/anYwKAEQxVYQ9QAMeEuFF2JlQPQyeUlGLsKBJASvUI74rMFvtu8GYGgISaBDQbilAPwQv170IzhMLyLrhNRu8KvBRjqQ9B/q2jv3MJHZZLpzf7wmVUl3p+KzhmH84dJsNs2FmHXqPcMwzDtTtTP7m82ms8swjKn4bDhNzUUH/HiCgPK6EYwoUQITKVIRMhwwEfjIj1XoVSYuzdnjpwNHghWBiSrNRroIYRP5wVcEEevcMR8MOsen+8oHZATrVcnI1AopiSwXeGpMYNzQ1InRXTOtaRp9CtQpSdrCRz1grVv/Iro7UHdZZJ1Q3FX4niIvp50MBqMie0R/hAFU090Tseu6rjddGo2Gdfxd57/zodFoOLt0XT8Rux52o8novC5tpaT3gIkK5VJhkbwNcWm56MC+SIQOGSytF9zjJXbabKSLuIMAFwTWCw2rpU3ArWmmtWOJBJvuHSjOyB7ZWUZBujQXfGqkIoUZnoELQey0kwn8529KlJJRWe5YvyDOQ9A3llVHyCLtwo94wjiUcKpn34J9XVDHHkRJd8fOXa1UKg0X27atbz6oVCrmF+/Ytm3bdrVaXV1dff36daVSGTt3lc7t6JbvTiUsVT+RNvUCoiNIBEkuaAF4FqcbFxjMzpXWbjFfi7Be0GDnEuHs5PXxgxQzly8VQWN5a3jP21ywUNFIsbm56Q0XbDp3nFDQmOd8xYxBoxSVyzNdBKfmHxxqVCS2TW6T6IaS7gVxWxid5edyvYC+vt+5H4b1LQKGRJb1Skn4Z5G9C9xQopA+kV013R3R4sVisV6vW5ZVKBQKhUKxWNSn3i8nJ4vFYrVa/TL6w/TlWy9evMjn8yNanM7tiIOrC6SLlZQGL12iu67MSGR567qbiw6QXmZl3SXFWkl3iYrkiUG6m4tGYA85hnXaIsRUIzMAyHWXFGsmXSlMPTfFqZgxUB9B3RWfGjRp13UYryIg9eT0bYD+kxPYjNvZTGtaIqElMtQO1F0R/Dy75Fvg3iLgWkLleNnBW4rzuzDDk7F8Pl+r1VZXVw8fjw1NXDx69tLHJ747fDx29Oyl+M15J/3ry7PZbHZ4MkbnZlTM3WRVxU33DxeubAKWMBG7gnQXKDYXHWDXOinqLrGhortsReJE0bkwl5OzeBXcBQiEmdaYuVdV3aWFCzbbBOUA9SpnVDFL5f4+6hjKDumRnxmWYMY9HCCThMXMmGrptIlx79UAOqGDgr3LrcwT9hynMH7xIftt6oM7pKS7Q+MzKysrhmFUq9Vqtfrzg99TD56kHjxJLvyaXHiczRWy2exnpy5OX55dWloaGp+hc6vrLj+3KkLmwe3U3gWcvlQGtkHETkL1PGj5Bi3jgNrlzaamm90DSCMYdbdzgC+7VEIZkQBnDkGXmchQJlHJKEgCzito9q1dm9y+7yLM8i0a3tegMgxnEiI7ydFdaHK3f0yrQGSXOPBBknZZyG+VK+KsRUx3tlAnOXYKSrp7aFRbXl7WdV3X9XK5fORMfHD8/OHx84Pj54+ciZfL5U8nLmiXbpXL5cXFxUOjGp2bcqESG5yf2V9UBAmHv5yZWG3M/aimY92FqyNSucyi0gLsXbAiqUpy2ennElb/UXe3CjypRAuE2jRt4ExV8DimklHaBml1/lot9tRYezcko0OwSpza5hbzyM7TMbESCdDQQns3kIAZVUFX4affFWZmM/R6ZnID7V2AgyOnc7mcYRilUimfz69AvHz50jCMXC53cOQ0ndtd7Av89LazdVWCVUTb012yCWTRfmVsY7aou2BFotr57LzuEk0ciETQ3t06nD3U/t77pqzaKk5mAkzgt6OHGK5elYxu5sDxSaC7glMj2hPGyNcuXmzJuinMEC6aMOR+t+VUQF4m1N1ARJ2Q++EceQ8IJw+lpMCXiK6K7W3uFIE03x5ESXcPRE6WSiXTNH+6+1hL3Pn83I/8X61Ws227VCodiJykc6MSdBW8nLuBLTvL+sLLtl3AX0pDO1F3twZepZBR0t3BMe1Gcs40TUNKrVa7kZwbHAP8zCgU3QJfV7UbQNlFdjHAC0mQrqKku8mFR8MTMx99Mhr4Nzwxk1x4ROdG3e0Sbac0XksEQZBdDMa9RxAEQZDegbqLIAiCIL0DdRdBEARBegfqLoIgCIL0DtRdBEEQBOkdSrqbrVi3Hz77fu63wL/bD59lK1bYjUYQBEGQXYqS7s7ef7r0vNhqtf7kWFtb8z63Wq2l58XZ+0/DbjSCIAiC7FKUdPfCzXv1en1jY+Mfgo2NjbW1tcbKw/X1dS+lXq9fuHkv5DYjCIJ49EvQVmTPoKS70Wvztm3/TbC+vt5sNut3v7VnPmy1Wl66bdvRa/PbatHOeiETHREQ2Ro7654iew/xe74yCWoHvgER2QEo6e70lTnLsv4iaDQatV+mX321/82bN68y861Wy0m3LGv6yty2WrSzxujt664X+kBYjhsBMTgRKJWLNAhGLBaUBgQyZo8EK4JrF1e0s+4phP9qdjZMHxgxThy8ADqUfqE8KwOioHSSjNw76EXvlhS0U3Bq/tvuw3xXJSuRfNgDOrQi0BYo9qLginiy2/6AutsxXlcBQ2gofjXamdjQConMJtOd++M1qUq6OxWfNQzjD5dms2kuxKxT7xmGYd6Zqp3Z32w2nV2GYUzFZ8NudA/Zpu76wQvhOLtuSCE2EjGoaWSrvH1+uYS4kZWJS3P20CGPOIEFKgITVZq9YyFsIj9KjiBinTvmg0Hn+HR/GAIygvWqZGRqhZRElgs8NSYwbmjqxOiumdY0jT4F6pQkbQFeI8xYt/5FdHeg7naGf42JGyHot/KOysUBJG9xDyJQ7iiUdPdE7Lqu602XRqNhHX/X+e98aDQazi5d10/Erofd6B7SPT8zED6wrZT0HjBRoVzqNdjehrg0NzwjGcNXWq88xGKnzd6xuIMAFwTWCw2rpU3ArWmmtWOJhDBQrzgje2RnGQXp0lzwqZGKFGZ4BrpsRxlpNaQfJSRKyagsd6xfEOch6BvLqnvAnUK9h3t3h3ULkVn6ZK5eSXfHzl2tVCoNF9u2rW8+qFQq5hfv2LZt23a1Wl1dXX39+nWlUhk7d5XO7WhACgrA21n8Xd6/ScR7Zww/ptBUZN9ANNVOJwPfkqoDNZLUXcC7ClQlQCJIHccMZi9JJLXJPiEw2bnS2lc5IGYwWJE0Ec5O3lNBFOX2xX/rou09b3PBQkUjxebmpjdcsOlQ1Fx4VGKe8xUzBo1ScPxdwan5B4caFYltk9skuqF8YHVBWeTp83O5XExjtHe3ilB26QsapLvADSWy9InsqunuiBYvFov1et2yrEKhUCgUisWiPvV+OTlZLBar1eqX0R+mL9968eJFPp8f0eJ0bmegJYTMc/0c8AkAACAASURBVFeSw6yXLtRdckj3D2qn+jtz0QjkGvXGdEc92SDxkkZS9VC1q0RayhFiL2Druks8dzBtkesuKdZKuks+4EgTg3QXvDv0xX+LEFONzAAg111SrJl0PvyraL6SFhCljIH6COqu+NSgmbyuw3gVAaknp28D9J+cTWTczmZa0xIJLZGhdqDudop7N4DLxk/NB+kueEtxfhdmeDKWz+drtdrq6urh47GhiYtHz176+MR3h4/Hjp69FL8576R/fXk2m80OT8bo3IwiuJvsCM2LGb1KiLSNKaPT2QHOkO7bB6gm+FnQSE934dr5qoUrm4AlTMSuIN0Fis1FB9i1Toq6S2yo6C5bkThRdC7M1eXuzo6IFGmmNWbuVVV3aeGCzTZBOUC9yhlVzFKhjcKfGmWH9MjPDEsw4x4OkEnCYqaPzKTTJsa97x6Mdxjot+5hcj8zv/iQ/Tb1wR1S0t2h8ZmVlRXDMKrVarVa/fnB76kHT1IPniQXfk0uPM7mCtls9rNTF6cvzy4tLQ2Nz9C51XWXn6ckkDpAaYexb/oOdFF3heYnuz5JgOwEOrV3AacvlYG9iMROQvW4Rxi+XjXvclCzqelm/u68fd0FvuxSCWVEApw5BF1mIkOZRCWjIAk4r6ChsV2b3L7vIszyLRre16AyDGcSIjvJ0V1ocrd/TKvuQXknRHdFYX6XNZPpLKFOcuwUlHT30Ki2vLys67qu6+Vy+ciZ+OD4+cPj5wfHzx85Ey+Xy59OXNAu3SqXy4uLi4dGNTo35Y4kNjg/M6iAPtRon4r407oD0Zy/lpdVmA50V9BIv7Vs7bloVD4p7S9nJlYbcz+q6Vh34dqIVC6zqLQAexesSKqSXHb6WQq+O29bd+FJJVog1KZpA2eqAg1ipYzSNkir85fAsKfG2rshGR2CVeLUNrfuS3aejt2VSIDWF9q724S4gGD34VHQ3U1i6p3Lgvaux8GR07lczjCMUqmUz+dXIF6+fGkYRi6XOzhyms7tLpwF1h91uK4Kch+T1pPnp25bcZFIZ/Yu0EjCewutoQJXi0mb3A3d5Zze7aL9ytjWbFF3wYpEtfPZed2F787b1l3OHmp/731TVsXrS6eLf+FLDzFcvSoZ3cyB45NAdwWnRrQnjJGvXbzYknVTmHEdmkX0z4G2lBgrFnV32xD+HEo0ge+Lu1NBd91S3CkCQWF7FiXdPRA5WSqVTNP86e5jLXHn83M/8n+1Ws227VKpdCByks79tkdVJXZFI3ct/Xd1t+ws6wsv23YBfykN7UTdRXYkSro7OKbdSM6ZpmlIqdVqN5Jzg2OAn3nHD7q7opG7lZ3/uqpug7KLIIgQJd1NLjwanpj56JPRwL/hiZnkwiM6966QtF3RyF1I2ymNlxZBEKQNxr1HEARBkN6BuosgCIIgvQN1F0EQBEF6B+ougiAIgvQO1F0EQRAE6R1KuputWLcfPvt+7rfAv9sPn2UrVtiNRhAEQZBdipLuzt5/uvS82Gq1/uRYW1vzPrdaraXnxdn7T8NuNIIgCILsUpR098LNe/V6fWNj4x+CjY2NtbW1xsrD9fV1L6Ver1+4eS/kNiMIgnj0S9BWZM+gpLvRa/O2bf9NsL6+3mw263e/tWc+bLVaXrpt29Fr89tqUY9ebkSHzUO6Qv+9mArZGYjf85VJUDvwPZHIDkBJd6evzFmW9RdBo9Go/TL96qv9b968eZWZb7VaTrplWdNX5rbVot2qu164AGGxbqTD4ESgVLUov4LSgOC/7JFgRXDt4op2r+76r2Znw/SBEePEwQugQ4mRns0I1xuUkXsxvejdkoJ2Ck7NfwV+mO+qZCWSD3tAh1YE2gLFXhRcEU922x9Qd7uD13/YiFKS/kNde+ceJjKbTHfuj9ekKunuVHzWMIw/XJrNprkQs069ZxiGeWeqdmZ/s9l0dhmGMRWfDbvR3WALuiuPlOSH4BPE6OPkC0xkGklGTiKi97STycrEpbHxgYEjwYrARJVm7zoIm8iPkiOIWOeO+WDQOT7dVz4gI1ivSkamVkhJZLnAU2MC44amTozummlN0+hToE5J0hY+6gFr3foX0d2ButsF/AtP3B1JhMc2TBxA8hb3IALljkJJd0/Eruu63nRpNBrW8Xed/86HRqPh7NJ1/UTsetiN7gbd1V26YMA43DcQzdF7wESFcqlWUAHl4dLcCIdk3FtpvfKwhJ02e9fhDgJcEFgvNKyWNgG3ppnWjiUSwkC94ozskZ1lFKRLc8GnRipSmOEZ6LIdZaTVkH6UkCglo7LcsX5BnIegbyyrkKH6Kd+p2GM9+xbs68Kcew4l3R07d7VSqTRcbNu2vvmgUqmYX7xj27Zt29VqdXV19fXr15VKZezcVTq3ow1gpNoO4+9yfk8yWj1hkvHuUTBFElg3Fdk3EI1GiCxEU6WCIxGkjuPssqfuho6nryDjgKZLa1/NgDi7YEXSRDg7ee8EkYfbPWHHirb3vM0FCxWNFJubm95wwaZDUXOFPjhJfaKMQaMUHH9XcGr+waFGRWLb5DaJbigfbV1QFu3n5J34TExjtHe7CtVnZP3XOwS4ocTBfSK7aro7osWLxWK9Xrcsq1AoFAqFYrGoT71fTk4Wi8Vqtfpl9Ifpy7devHiRz+dHtDid2xmACUXjg9aT6ULdJYd6/6B2qr+Tn8sEM3rylYtGIBfrPt6tK7V3XZmRGMRb113i+YJphFx3SbFW0l3yQUaaGKS74FWle8IOhJhqZAYAue6SYs2k8+FfRfOVzESZSsZAfQR1V3xq4KRdt2G8ioDUk9O3AfpPTmAzbmczrWmJhJbIUDtQd7uCe4tEFq6ou4K3FOd3YYYnY/l8vlarra6uHj4eG5q4ePTspY9PfHf4eOzo2Uvxm/NO+teXZ7PZ7PBkjM7NKIW7yY7cbjolqbDBCdmyxBavMEBGymzkbDNGqnndFa5sApYwEbuCdBcoNhcdYNc6KeousaGiu2xF4kTRuTC3mruqOzrYopnWmLlXVd2lhQs22wTlAPUqZ1QxS+EjwFOj7JAe+ZlhCWbcwwEySVjM9JGZdNrEuPch47uMVe1dYPEh+23qgzukpLtD4zMrKyuGYVSr1Wq1+vOD31MPnqQePEku/JpceJzNFbLZ7GenLk5fnl1aWhoan6Fzq+suP39JIHWMBuguLByeee3u56xoqmGqsiFraKf2LuD0pTKwTSJ2EqoHechFlnFA7fJmU9PN/FXduboLfNmlEsqIBDhzCLrMRIYyiUpGQRJwXrDucqemYq90BWb5Fg3va1AZhjMJkZ3k6C40uds/plXIuD0l8JHTl2bWvUN3tlAnOXYKSrp7aFRbXl7WdV3X9XK5fORMfHD8/OHx84Pj54+ciZfL5U8nLmiXbpXL5cXFxUOjGp2bclMSG5yfOUDdKBVIRfy53IFoTrDGNxV1LWUuo6u7rFJtSXf95cyMW5r9qU5nugtXSKRymUWlBTyNgBVJVZLLTj8zwVd1p+ouPErQAqE2TRs4U6UwOilklLZBWh23BoZdv+XlC8nokKx69ba5JTqy83T8BYkE5zVo70R7t+sQV5W4O7Lvy6abTD5OkRto7wIcHDmdy+UMwyiVSvl8fgXi5cuXhmHkcrmDI6fp3O6CWmaRzeZmx+uqIHcwaVVR04hsmfzKKfbogUhEau+6h0LKJlhFtD3d5Tzk7aL5EwwqLUB3wYpEtfPZed2Fr+pO1V3OHiJ+GQHPdwbrrvgXvvQQw9WrktHNHDg+CXRXcGpEe8IY+drFiy1ZN4V58uB/4EukM5YSY8Wi7oYD4eRhb5Sk+3Cu6GOeqcx/+fY2Srp7IHKyVCqZpvnT3cda4s7n537k/2q1mm3bpVLpQOQknXunjrZI18Fb7bJlZ1lfeNm2C/hLaWgn6i6yI1HS3cEx7UZyzjRNQ0qtVruRnBscA/zMOBj3A7v3dVXdBmUXQRAhSrqbXHg0PDHz0SejgX/DEzPJhUd0btTdPqDtlMb7jCAIEgDGvUcQBEGQ3oG6iyAIgiC9A3UXQRAEQXoH6i6CIAiC9A7UXQRBEATpHUq6m61Ytx8++37ut8C/2w+fZStW2I1GEARBkF2Kku7O3n+69LzYarX+5FhbW/M+t1qtpefF2ftPw240giAIguxSlHT3ws179Xp9Y2PjH4KNjY21tbXGysP19XUvpV6vX7h5L+Q2IwiCePRL0FZkz6Cku9Fr87Zt/02wvr7ebDbrd7+1Zz5stVpeum3b0Wvz22rR23zpER1jD2HA91EhOxTxe74yCWoHvicS2QEo6e70lTnLsv4iaDQatV+mX321/82bN68y861Wy0m3LGv6yty2WrRDddeLEiAUZj9+QlAiUCoXlI9LlJQGxPxljwQrgmsXV7SHddd/NTsbpg+MGCcOXgAdSoz0bEa43qCMXEAF0bslBe0UnJr/Xvsw31XJSiQf9oAOrQi0BYq9KLginuy2P6DuChB3FWgv3FW8TqUQF8EpIZHZZLpzf7wmVUl3p+KzhmH84dJsNs2FmHXqPcMwzDtTtTP7m82ms8swjKn4bNiNDg2R7vpx/uCQtG70HTagMKhpZHXePr9cQUhDcWnOHjo6ECewQEVgokqz9x6ETeRHyRFErHNHHDDoHJ/uD1hARrBelYxMrdAwJ8sFnhoTGDc0dWJ010xrmkafAnVKkrbwUQ9Y69a/iO4O1F2e4A4GPKBxXcW/G6JbxsQBJG9xDyJQ7iiUdPdE7Lqu602XRqNhHX/X+e98aDQazi5d10/Erofd6NBQ8DMDkfbaSknvARMVyqXeZk3FkYdLc6MskuFupfXKoxF22uy9hzsIcEFgvdCwWtoE3JpmWjuWSAgD9Yozskd2llGQLs0FnxqpSGGGZ6DLdpSRVkP6UUKilIzKcsf6BXEegr6xrAKRdzBwb1BXCYi/y7qFyMP7ZK5eSXfHzl2tVCoNF9u2rW8+qFQq5hfv2LZt23a1Wl1dXX39+nWlUhk7d5XO7YhHCgrA22H8XfB4QToRj9cz51KRfQPRVNueI0PMuhoTrLsSQeo4vC57Zm7EePoCMQ5ourT2xQoIrwtWJE2Es5O3RhBwuH2jd69oe8/bXLBQ0UixubnpDRdsOhQ1Fx7umed8xYxBoxQcf1dwav7BoUZFYtvkNoluKBBYHS6LPH1+LpeLaYz2rgD5PRf2/w5k17n2wA0lju8T2VXT3REtXiwW6/W6ZVmFQqFQKBSLRX3q/XJyslgsVqvVL6M/TF++9eLFi3w+P6LF6dzOCE3Em+eD1pPpQt0VHC9Md8XD1xBCEhzFZcOxi3U3R6i1gK3rLvGMwJy9XHdJsVbSXfJhRJoYpLu5aAT2kO/ukETEVCMzAMh1lxRrJp0P/yqar6QFRCljoD6Cuis+tYD5ue7AeBWB8Zucvg3Qf3LekXE7m2lNSyS0RIbagboroCPdhbuKe9/E7gn4luL8LszwZCyfz9dqtdXV1cPHY0MTF4+evfTxie8OH48dPXspfnPeSf/68mw2mx2ejNG5GSlxN9mh3U2nVJAwR0XHi9L9EshpTPlnT3eFK5uAJUzEriDdBYrNRQfYtU6KuktsqOguW5E4UXQuzJ3kLN7dHfDRTGvM3Kuq7tLCBZttgnKAepUzqpil8BHgqVF2SI/8zLAEM+7hAJkkLGb6yEw6bWLce2U60N2grgItL2ynOz4hmS+nPyZ4lXR3aHxmZWXFMIxqtVqtVn9+8HvqwZPUgyfJhV+TC4+zuUI2m/3s1MXpy7NLS0tD4zN0bnXd5Sc4CUTHi9LbebamuxJkHtxO7V3A6UtlYK8FsZNQPQ9avkHLOKB2ebOp6Wb3ANII3rW6C3zZpRLKiAQ4cwi6zESGMolKRkEScF6w7nKnJrfvuwizJoeG9zWoDMOZhMhOcnQXmtztH9NKEXXdVegq8uc91r3DTR7v/RujpLuHRrXl5WVd13VdL5fLR87EB8fPHx4/Pzh+/siZeLlc/nTignbpVrlcXlxcPDSq0bkpPyaxwfmH/ZU9an5mwnsssQLp9cFb0l1/OTOx2pj7UU3HugufKZHKZRaVFmDvghVJVZLLTj8Ssfq/y3UXnlSiBUJtmjZwpirQIFbKKG2DtDp/rRZ7aqwRE5LRIVglTm1z675k5+n4CxIJzmvQ3on2rhrbsHfdOfSgOfkMvZ6Z3EB7F+DgyOlcLmcYRqlUyufzKxAvX740DCOXyx0cOU3ndlfcqq2H6ta6KkKNPWnYur0rWEW0Pd0lW80tCQNnk7eou2BFotr57LzuEk0ciER2vb3L2UPt771vyqp4fel08S986SGGq1clo5s5cHwSDpfgqRHtCWPkaxcvtmSJIZybNgQaxP1uy6mAvEyou8rInwiBBYNcVyE8Pwq/3yW8FPT3oC9uj5LuHoicLJVKpmn+dPexlrjz+bkf+b9arWbbdqlUOhA5SefetcMxwoB3UpktO8v6wsu2XcBfSkM7UXe3Bl6lkFHS3cEx7UZyzjRNQ0qtVruRnBscA/zMOFrvAfbw66q6DcousosBXkiCdBUl3U0uPBqemPnok9HAv+GJmeTCIzo36u7up+2UxtuIIAiyXTDuPYIgCIL0DtRdBEEQBOkdqLsIgiAI0jtQdxEEQRCkd6DuIgiCIEjvUNLdbMW6/fDZ93O/Bf7dfvgsW7HCbjSCIAiC7FKUdHf2/tOl58VWq/Unx9ramve51WotPS/O3n8adqMRBEEQZJeipLsXbt6r1+sbGxv/EGxsbKytrTVWHq6vr3sp9Xr9ws17IbcZQRDEo1+CtiJ7BiXdjV6bt237b4L19fVms1m/+60982Gr1fLSbduOXpvfVove5luRVOIRSfLiy5wQ5K0gfs9XJsG+WBglGnnbKOnu9JU5y7L+Img0GrVfpl99tf/NmzevMvOtVstJtyxr+srctlqEurt1vFgHwrMgoyTKE4FSudCCXKKkNCByMXskWBFce7fxX83OhukDI8aJgxdAhxIjPZsRrjcoIxdQQfRuSUE7Bafmv9g+zHdVshLJhz2gQysCbYFiLwquiCe77Q+ouxxUbxJeHK5v+9mgsI5QOdS1d+5hIsNm7I/XpCrp7lR81jCMP1yazaa5ELNOvWcYhnlnqnZmf7PZdHYZhjEVnw270aGxq3XXj1YIB9Z1Ywix0YoDNC0VocIZ+6GHiDCMVJRHsDRnDx3jiBNYoCIwsesQNpEfJUcQsc4d88Ggc3y6r3xARrBelYxMrdAgJ8sFnhoTGDc0dWJ010xrmkafAnVKkrYArxFmrFv/Iro7UHc5VC4J27cFQXfl5TBxAMlb3IMIlDsKJd09Ebuu63rTpdFoWMffdf47HxqNhrNL1/UTsethNzo0drXuEgBtaSslvQdMVCiXeuW2tyEuzQ0FSQbtldbbcUzF7uEOAlwQWC80rJY2gWHHTGvHEglhoF5xRvbIzjIK0qW54FMjh80wwzPQZTvKSA/Z9KOEZDhnVJY71i+I8xD0jWUVTLDusn0bdqMo6y5rOpM9ok/m6pV0d+zc1Uql0nCxbdv65oNKpWJ+8Y5t27ZtV6vV1dXV169fVyqVsXNX6dzOuJyCAvCGGH+XiMfuWUqpyL6BaKptaZExaN3hvJP4u6wDNBXZNxCN8o5e3k8a2Ay4PihNeJlEArUtQfMsTvo6Mdm50tp3NCBIMFhRYGLX8Z63uWChopFic3PTGy6AMKUCHRbW21HGoFEKjr8rODX/4FCjIrFtcpsER3+Vh71nhnp+LpeLaYz2LgvptAcvDde3zbSmpdPsREVgOc61B25ohlL0vrg/Sro7osWLxWK9Xrcsq1AoFAqFYrGoT71fTk4Wi8Vqtfpl9Ifpy7devHiRz+dHtDid29ELd8QkXYik0njpQt0VHC9Md4d1f3RPRTxxc6SOjdcu0F2gSfxsZSqyj/fCksrilRLYjFw0wjlXVaI65QgtF7B13SUeZJi2yHWXFGsl3SWfmOSJXYeYamQGALnukmLNpPPhX0XzlbSAKGUM1EdQd8Wn5lmFYQ59jFcRkHpyBA/Qf9LyYtzOZlrTEgktkaF2oO6KgZYnQH3be57ZhJ+LwHI2ve4FVtFnXggl3R2ejOXz+Vqttrq6evh4bGji4tGzlz4+8d3h47GjZy/Fb8476V9fns1ms8OTMTo3M0q7m+yg66ZTKsjak8DxonS/BHKGUP7Z011m0RBTDqgYjMS6babhzkT0mbduuTaIVzYBS5gkDWcTgWJz0QH29BV1l9hQ0V22InFi1zHTGjP3qqq7tHDBZpugHKBe5YwqZil8BHhq1ADaIz8zLMGMezjYBwovmMqk0ybGve8MmZtF5A5R75nOtedVmf029cEdUtLdofGZlZUVwzCq1Wq1Wv35we+pB09SD54kF35NLjzO5grZbPazUxenL88uLS0Njc/QudV1l587JBAdL0pv59ma7oIQa4PUdRfQi6BmkDrDXg12fZIAmQe3U3sX8O9yTwiM05+cx2URP73sBO8ylSSWUEYkwJlD0GUmMpRJVDIKkoDzgsc/7tTk9n0XYZZv0fC+BpVhOJMQ2UmO7kKTu/1jWnUCMD8OXDR6eld9iZWbyrp3gnV8z6Gku4dGteXlZV3XdV0vl8tHzsQHx88fHj8/OH7+yJl4uVz+dOKCdulWuVxeXFw8NKrRuSkXIbHB+YedDXU/M+E9lhhY9NLbLeluLhplJ59JOUhFWY31tJ9SjVTEO3FpM1jhavuZuTZwl5m8yP7FpCS1Y92FayNSucyi0gLsXbAiYaL3gEJ/2BrwpBItEGrTtIEzVYEGsVJGaRuk1flrtdhTY+3dkIwOwSpxaptb9yU7T8dfkEhwXoP2TrR3AzBNNVOT6dv+XK/bgQLLydDrmckNtHcBDo6czuVyhmGUSqV8Pr8C8fLlS8MwcrncwZHTdG53MSuwJijEdVWEGnvitXV7N8U337fleDUlbG5gNVRgM/w8A5EIKXDAqTMXGriY29NdzlVOrlsDW7NF3QUrAhO7rrucPUTMXcHzncG6K/6FLz3EcPWqZHQzB45PAt0VnBrRnjBGvnbxYkvWTWGePPgf+BLpjKXEWLGou8EQd126qpizSpmuApXDlcD2NneKgP/y7W2UdPdA5GSpVDJN86e7j7XEnc/P/cj/1Wo127ZLpdKByEk6t8qKIATZU2zZWdYXXrbtAv5SGtqJurs18CqFjJLuDo5pN5JzpmkaUmq12o3k3OAY4GdG3UX6CZRdZBcDvJAE6SpKuptceDQ8MfPRJ6OBf8MTM8mFR3Ru1F0EQRAEaYNx7xEEQRCkd6DuIgiCIEjvQN1FEARBkN6BuosgCIIgvQN1F0EQBEF6h5LuZivW7YfPvp/7LfDv9sNn2YoVdqMRBEEQZJeipLuz958uPS+2Wq0/OdbW1rzPrVZr6Xlx9v7TsBuNIAiCILsUJd29cPNevV7f2Nj4h2BjY2Ntba2x8nB9fd1LqdfrF27eC7nNCIIgHv0StBXZMyjpbvTavG3bfxOsr683m8363W/tmQ9brZaXbtt29Nr8tlq0zXftbhelWLRvsby9xlu+3cjeQPyer0yC2oFvQER2AEq6O31lzrKsvwgajUbtl+lXX+1/8+bNq8x8q9Vy0i3Lmr4yt60W9ZHuem/9F77OiwxqKE8ESlUL1isoDYjhyx4JVgTXLq5oh+iu/2p2Nkwf+KJ3cfAC6FBipGczwvUGZeQCKojeLSlop+DU/GAJYb6rkpVIPuwBHX4OaAsUn05wRTzZbX9A3RUg7CqiLspHRhB/X7zdVId2s2Lce5ip+KxhGH+4NJtNcyFmnXrPMAzzzlTtzP5ms+nsMgxjKj4bdqO3h/y9lT3TXT9uHxxi1g34wwYXBjWNrI+KPuyUS8dCpIMygqWxYX6BI8GKwESVZr9dCJvIj5IjiFjnjvlg0Dk+3R/OgIxgvSoZmVohJZHlAk+NCYwbmjoxumumNU2jT4E6JUlbgNcIM9atfxHdHai7PLKuIuiigH9BEuHRKwsORkUW1h9hANV090Tsuq7rTZdGo2Edf9f573xoNBrOLl3XT8Suh93o7bFDdFd+TFsp6T1gokK51Bl7G+LS3MiNZCxDab3y6IKdNvvt4g4CXBBYLzSsljYFw04iIQzUK87IHtlZRkG6NBd8aqQihRmegS7bUUZaDelHCYlSMioLxm13tjkPQd9YVoEE9kwPsk/K3TPCGNKefQv2dWHOPYeS7o6du1qpVBoutm1b33xQqVTML96xbdu27Wq1urq6+vr160qlMnbuKp3bGejB6LGdxd8F4suybk2iLjaUrR+vnvaDMiWkIvsGolHGASw+BahNbNjYILWRCFLH4XKZ47yTphvHOKDp0to3ICBcLliRNBHOTt5uQQBh6oaGjfe8zQULFY0Um5ub3nDBpkNRc8XePHF9ooxBoxQcf1dwav7BoUZFYtvkNoluKOleELeF0Vl+LpeLaYz2roDge+51UTOtaek041OWfl+8xEQGuKHEwX0iu2q6O6LFi8VivV63LKtQKBQKhWKxqE+9X05OFovFarX6ZfSH6cu3Xrx4kc/nR7Q4ndsZTYmg736geCbsuWeGQboLpPNzkHRdm7loBHa6kq2hS0hF9vHeWdEpgOVTggNMkzKNlczubkd3c9EB6IT57PymJ9ZKuktUJE8M0l3hzZJeoa5CTDUyA4Bcd0mxZtL58K+i+UpaQJQyBo6VoO6KT82zCsMc+hivIiD15PRtgBaQlhfjdjbTmpZIaIkMtQN1V0BAXyK7qPc8s6nSqagqwFuK87sww5OxfD5fq9VWV1cPH48NTVw8evbSxye+O3w8dvTspfjNeSf968uz2Wx2eDJG52aGfXeTHYbddP9wZimQs0kv4QE9pCkuiTKiiGOAEsgkbyWQ4BTA8oWyJlzZJNFmBd0Fis1FB9gLpai7xIaK7rIViRNF58JcWtnNChkzrTFzr6q6SwsXbLYJygHquQIkhgAACv5JREFUVc6oaKIAR4CnRtkhPfIzwxLMuIcDZJKwmOkjM+m0iXHvlZHccuCrwW+p2rvA4kP229QHd0hJd4fGZ1ZWVgzDqFar1Wr15we/px48ST14klz4NbnwOJsrZLPZz05dnL48u7S0NDQ+Q+dW111+MpKHWPETqLukApB2Vbd0Fyw/yI0LIfPgdmrvAk5fKgN7fYmdhOpBTnKRZRxQu7zZ1HSz9GaFCfBll0ooIxLgzCHoMhMZyiQqGQVJwHnBusudmoq90hWY5Vs0vK9BZRjOJER2kqO70ORu/5hWikgWELA3gJ7e9XVX/sjpP/Ow7h1Qx/c2Srp7aFRbXl7WdV3X9XK5fORMfHD8/OHx84Pj54+ciZfL5U8nLmiXbpXL5cXFxUOjGp2b8jkSG5yfGdQ4opgoOwNMDvKpKC/arKTAfma6BKHuAqcAl88t5AVF0l/OzPiz2Z/qdKa78NWTPWqISguwd8GKpCrJZacfs4JvVmjAowQtEGrTtIEzVQqjk0JGaRuk1flrtdhTY+3dkIwOyapXcv6QXqIT6ADVEgnOa9DeifauGp0sICDuibxTcVWQj1Pw4mi0dz0OjpzO5XKGYZRKpXw+vwLx8uVLwzByudzBkdN0bnd1LL/8qMN1VcC6Jt9CA4dpf/dAJOLtaaeyC6881RTYu8ApwOVTS7WiQpEUrCLanu7SK7r8otnTDC4tQHfBikS189l53YUvZk90l7OHiLkreL4zWHfFv/ClhxiuXpWMbubA8Umgu4JTI9oTxsjXLl5sybopzGDP/8CXSGcsJcaKRd1VBn4iFH01iB3sT3LF3YdzRR/z1vkBNexplHT3QORkqVQyTfOnu4+1xJ3Pz/3I/9VqNdu2S6XSgchJOnfvpuhCYw+cwk5lj17aLTvL+sLLtl3AX0pDO1F3twZepZBR0t3BMe1Gcs40TUNKrVa7kZwbHAP8zLt8ZN0Dp7BD2SGvq+o2KLvILgZ4IQnSVZR0N7nwaHhi5qNPRgP/hidmkguP6Nx7QLT2wCnsPNpOabyuCIL0Fxj3HkEQBEF6B+ougiAIgvQO1F0EQRAE6R2ouwiCIAjSO1B3EQRBEKR3KOlutmLdfvjs+7nfAv9uP3yWrVhhNxpBEARBdilKujt7/+nS82Kr1fqTY21tzfvcarWWnhdn7z8Nu9EIgiAIsktR0t0LN+/V6/WNjY1/CDY2NtbW1horD9fX172Uer1+4ea9kNuMIAji0S9BW5E9g5LuRq/N27b9N8H6+nqz2azf/dae+bDVannptm1Hr81vu1Ve4Lo998KKPfp+JgR5q4jf85VJUDvwDYjIDkBJd6evzFmW9RdBo9Go/TL96qv9b968eZWZb7VaTrplWdNX5rbdqh2gu2RsA1FoXEGkAUmoXdTdHYr/anY2TB8YMU4cvAA6lH51PBg1RxYKxn/dfEBcHlZgxLmoN9H7ret53Pt2w5kK6dCKgksTgB/i14t+BIfpReRdhT4AjKIBR1AQxd9t49xDPmt/vCZVSXen4rOGYfzh0mw2zYWYdeo9wzDMO1O1M/ubzaazyzCMqfjstlv11nU3FfHEURRmVhqKjwh1v6fM9T0KYRP5UXIEEevcMR+UTz7dl0Mwo7Q0NoyvKAQRUAh4RuQJg2F/A+rpDozummlN02g/MfWoImkM8Bphxrr1r767A3WXJaCrCEPYSwRS4Phn4gCSt7gHESh3FEq6eyJ2Xdf1pkuj0bCOv+v8dz40Gg1nl67rJ2LXt92qt667TGMYjfXiA0JQTd4J7Uc6wh0EuCCwnu2ppU1g2DHT2rFEQhioF8woLs3PSAoFONpJChHmClCfUKMzcJfAaTwT+I8ywkVtZVSWO9YviLPG+say6gj+xnfgoJGU4qV79i3jVvI2+2SuXkl3x85drVQqDRfbtq1vPqhUKuYX79i2bdt2tVpdXV19/fp1pVIZO3eVzEuGjHfNv1Rk30A01Q63SsZtddWM0V3QpQs5goGQtqmIEwSXPhI4UARvs+aiA36RnN3rtd2vPkflpaLtAgF42+eL3ui3gve8zQULFY0Um5ub3nDBpkNRc5WMByLJ/yiVQ+FOKpy8/xAAeA4Di+oKbKBX1/0LRH+lGi0oi2w/P5fLxTRGe1cCb2yaaU1Lp5npFjCRzCKLvwvcUOLm94nsqunuiBYvFov1et2yrEKhUCgUisWiPvV+OTlZLBar1eqX0R+mL9968eJFPp8f0eJM9rb2+BJE6IqjnqxxS+kupaFwdHonNReN8M7hVIQqn4m1HgT51ECeDxVPXiismzLdBVtLny/SY4ipRmYAkOsuKdZMOh/+VUV3gQjhAo2Ul0xNnkISRpkerhyHO/AxXkXgmYJ8LAh4ACAtL8btbKY1LZHQEhlqB+quCH6efZN4dNkk+g+YSOQQ3bN2P4Z8O/3mhVDS3eHJWD6fr9Vqq6urh4/HhiYuHj176eMT3x0+Hjt69lL85ryT/vXl2Ww2OzwZ4wpw1JWcMpV/FvmZ3U3f1mWNTs6GZBSaVHtSEIGVULnoAGx10lrKKqu6vQu0Fv3Sbw0zrTEzpKq6C9qmm/Czu5LuCu09mSEKuggVhjHY2O6NnxmWYMY9HCCThMVMH5lJp02Me6+GsKvQvaO9BSaCW1xhjk9I5gTqjwleJd0dGp9ZWVkxDKNarVar1Z8f/J568CT14Ely4dfkwuNsrpDNZj87dXH68uzS0tLQ+AxXQAi6ywsiqZOU6czrLpFB4M+VrYiiiwF0l9ZuqhjCOIdai7r7dgC+7FIJZUQCnDkEXWYqusvKrlj+JYUoD1+gEIXoaWbWidHwvgaV88gkRHaSo7vQ5G7/mFaByC4xPZPb7hZgIrABVOQv0Bf26nBnOXYISrp7aFRbXl7WdV3X9XK5fORMfHD8/OHx84Pj54+ciZfL5U8nLmiXbpXL5cXFxUOjGpPdUSJ6mW8HukvPh/reY0+fUpFIii6JPpLT3Vw0Ss2ncicMJvsnQJwK5bv29/oT2kwObyfcWtTdtwE8qUQLhMI07Sanx4qCxi+2on9uobTYM9DUJud3Td66IExD+Zzq9hCsEqe2uSVtssY4ploiARpsaO8GEjCjSlx+en0Al7i5GaSZzHpmcgPtXYCDI6dzuZxhGKVSKZ/Pr0C8fPnSMIxcLndw5DSZNxWhzDrOXFWwdyPQsirBoqS2szgSkdu7sh/fUruJo6ipXK4Acq/fELJpzNQy2FrU3bcBZw8Rc1fwxGqw7op/4Rugu3xGonmSAYkbvLgz8odIYjcj+AoTyVumXavYknVTGCkAJx699tKWEmPFou4GIuwq1C+5uG4hTJR3UbYEf75YpY/vHZR090DkZKlUMk3zp7uPtcSdz8/9yP/VajXbtkul0oHIybAbvYtBYe0Ptuws6wsv23YBfykN7UTd3Rp4lUJGSXcHx7QbyTnTNA0ptVrtRnJucIz1MyMe+Lqq/gBlF9nFAC8kQbqKku4mFx4NT8x89Mlo4N/wxExy4VHYjd6VtD3TaOwiCIL0NRj3HkEQBEF6B+ougiAIgvQO1F0EQRAE6R2ouwiCIAjSO1B3EQRBEKR3oO4iCIIgSO9A3UUQBEGQ3oG6iyAIgiC9A3UXQRAEQXoH6i6CIAiC9A7UXQRBEATpHai7CIIgCNI7UHcRBEEQpHeg7iIIgiBI70DdRRAEQZDegbqLIAiCIL0DdRdBEARBegfqLoIgCIL0DtRdBEEQBOkdqLsIgiAI0jtQdxEEQRCkd6DuIgiCIEjv+P8ZlXYF0PznxQAAAABJRU5ErkJggg==" alt="" />

有可能也需要:    commons-codec-1.11.jar   这个包。

  • HSSFXXXXX导出低版本Excel(以xls结尾的excel,如果导出xlsx结尾的excel,打开会报错,必须手动将后缀改为xls才可以正确打开)
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class POIExt03VersionExcel {
public static void main(String[] args) {
String[] title = { "id", "name", "sex" };
// 创建一个工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 创建一个工作表sheet
HSSFSheet sheet = workbook.createSheet();
// 创建第一行
HSSFRow row = sheet.createRow(0);
// 创建一个单元格
HSSFCell cell = null;
// 创建表头
for (int i = 0; i < title.length; i++) {
cell = row.createCell(i);
cell.setCellValue(title[i]);
}
// 从第二行开始追加数据
for (int i = 1; i <= 10; i++) {
// 创建第i行
HSSFRow nextRow = sheet.createRow(i);
// 参数代表第几列
HSSFCell cell2 = nextRow.createCell(0);
cell2.setCellValue("a" + i);
cell2 = nextRow.createCell(1);
cell2.setCellValue("user" + i);
cell2 = nextRow.createCell(2);
cell2.setCellValue("男");
}
// 创建一个文件
File file = new File("G:/POI_TEST11.xlsx");
try {
file.createNewFile();
// 打开文件流
FileOutputStream outputStream = new FileOutputStream(file);
workbook.write(outputStream);
outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

导出图片:

导出单个图片

package cn.qlq.test;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; /**
* 导出单个图片
*
* @author liqiang
*
*/
public class ExtExcelOnePic { public static void main(String[] args) {
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
try {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
// 加载图片
bufferImg = ImageIO.read(new File("e:/1.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("sheet1");
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
/**
* dx1 - the x coordinate within the first
* cell.//定义了图片在第一个cell内的偏移x坐标,既左上角所在cell的偏移x坐标,一般可设0 dy1 - the y
* coordinate within the first
* cell.//定义了图片在第一个cell的偏移y坐标,既左上角所在cell的偏移y坐标,一般可设0 dx2 - the x
* coordinate within the second
* cell.//定义了图片在第二个cell的偏移x坐标,既右下角所在cell的偏移x坐标,一般可设0 dy2 - the y
* coordinate within the second
* cell.//定义了图片在第二个cell的偏移y坐标,既右下角所在cell的偏移y坐标,一般可设0 col1 - the
* column (0 based) of the first cell.//第一个cell所在列,既图片左上角所在列 row1 -
* the row (0 based) of the first cell.//图片左上角所在行 col2 - the column
* (0 based) of the second cell.//图片右下角所在列 row2 - the row (0 based)
* of the second cell.//图片右下角所在行
*/
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 2, 2, (short) 5, 8);
// 插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut = new FileOutputStream("e:/excel.xls");
// 输出文件
wb.write(fileOut);
} catch (Exception e) {
e.printStackTrace();
}
}
}

// 关于HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)的参数,有必要在这里说明一下:
// dx1:起始单元格的x偏移量,
// dy1:起始单元格的y偏移量,
// dx2:终止单元格的x偏移量,
// dy2:终止单元格的y偏移量,
// col1:起始单元格列序号,从0开始计算;
// row1:起始单元格行序号,从0开始计算,
// col2:终止单元格列序号,从0开始计算;
// row2:终止单元格行序号,从0开始计算,
//添加多个图片时:多个pic应该share同一个DrawingPatriarch在同一个sheet里面。

导出多个图片,多个图片一样

package cn.qlq.test;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; /**
* 导出多个图片(多个图片一样)
*
* @author liqiang
*
*/
public class ExtExcelMultiPic { public static void main(String[] args) {
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
try {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
// 加载图片
bufferImg = ImageIO.read(new File("e:/2.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("sheet1");
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 2, 2, (short) 5, 8);
// 插入图片 1
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); // 图片2
anchor = new HSSFClientAnchor(200, 0, 0, 0, (short) 2, 9, (short) 5, 15);
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut = new FileOutputStream("e:/excel.xls");
// 输出文件
wb.write(fileOut);
} catch (Exception e) {
e.printStackTrace();
}
}
}

导出多个图片,图片不一样

package cn.qlq.test;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream; import javax.imageio.ImageIO; import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; /**
* 导出多个图片(多个图片不一样)
*
* @author liqiang
*
*/
public class ExtExcelMultiPic2 { public static void main(String[] args) {
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
BufferedImage bufferImg1 = null;
try {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
ByteArrayOutputStream byteArrayOut1 = new ByteArrayOutputStream();
// 加载图片
bufferImg = ImageIO.read(new File("e:/1.jpg"));
bufferImg1 = ImageIO.read(new File("e:/2.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
ImageIO.write(bufferImg1, "jpg", byteArrayOut1);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("sheet1");
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) 2, 2, (short) 5, 8);
// 插入图片 1
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG)); // 图片2
anchor = new HSSFClientAnchor(200, 0, 0, 0, (short) 2, 9, (short) 5, 15);
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut1.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut = new FileOutputStream("e:/excel.xls");
// 输出文件
wb.write(fileOut);
} catch (Exception e) {
e.printStackTrace();
}
}
}
  • XSSFXXXXX导出高版本Excel(以xlsx结尾的excel,如果导出xls结尾的excel,打开会报错,必须手动将后缀改为xlsx才可以正确打开)
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class POIExt07VersionExcel {
public static void main(String[] args) {
String[] title = { "id", "name", "sex" };
// 创建一个工作簿
XSSFWorkbook workbook = new XSSFWorkbook();
// 创建一个工作表sheet
Sheet sheet = workbook.createSheet();
// 创建第一行
Row row = sheet.createRow(0);
// 创建一个单元格
Cell cell = null;
// 创建表头
for (int i = 0; i < title.length; i++) {
cell = row.createCell(i);
cell.setCellValue(title[i]);
}
// 从第二行开始追加数据
for (int i = 1; i <= 10; i++) {
// 创建第i行
Row nextRow = sheet.createRow(i);
// 参数代表第几列
Cell cell2 = nextRow.createCell(0);
cell2.setCellValue("a" + i);
cell2 = nextRow.createCell(1);
cell2.setCellValue("user" + i);
cell2 = nextRow.createCell(2);
cell2.setCellValue("男");
}
// 创建一个文件
File file = new File("G:/POI_TEST11.xls");
try {
file.createNewFile();
// 打开文件流
FileOutputStream outputStream = new FileOutputStream(file);
workbook.write(outputStream);
outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }

最后发现相同数据的excel,以xlsx结尾的确实大小比xls的小,07年office改版的目的就是为了节约内存,所以xlsx的占用内存小:

导出图片:

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream; import javax.imageio.ImageIO; import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFDrawing;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; /**
* 导出单个图片
*
* @author liqiang
*
*/
public class ExtExcelOnePic { public static void main(String[] args) {
FileOutputStream fileOut = null;
BufferedImage bufferImg = null;
try {
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
// 加载图片
bufferImg = ImageIO.read(new File("e:/1.jpg"));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet1 = wb.createSheet("sheet1");
XSSFDrawing patriarch = sheet1.createDrawingPatriarch();
/**
* dx1 - the x coordinate within the first
* cell.//定义了图片在第一个cell内的偏移x坐标,既左上角所在cell的偏移x坐标,一般可设0 dy1 - the y
* coordinate within the first
* cell.//定义了图片在第一个cell的偏移y坐标,既左上角所在cell的偏移y坐标,一般可设0 dx2 - the x
* coordinate within the second
* cell.//定义了图片在第二个cell的偏移x坐标,既右下角所在cell的偏移x坐标,一般可设0 dy2 - the y
* coordinate within the second
* cell.//定义了图片在第二个cell的偏移y坐标,既右下角所在cell的偏移y坐标,一般可设0 col1 - the
* column (0 based) of the first cell.//第一个cell所在列,既图片左上角所在列 row1 -
* the row (0 based) of the first cell.//图片左上角所在行 col2 - the column
* (0 based) of the second cell.//图片右下角所在列 row2 - the row (0 based)
* of the second cell.//图片右下角所在行
*/
XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) 2, 2, (short) 5, 8);
// 插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut = new FileOutputStream("e:/excel.xlsx");
// 输出文件
wb.write(fileOut);
} catch (Exception e) {
e.printStackTrace();
}
}
}

  导出多图片类似于上面,这里不再贴代码了。

  导出xls用HSSFXXXXX,导出xlsx用XSSFXXXX。。。。。。

补充:

  另外补充一种根据Work的类型生成对应图片到版本的Excel的文件的方法:

import java.io.FileInputStream;
import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Picture;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class WritePicToExcel07 {
public static void main(String[] args) throws Exception {
/* 写EXCEL,将目标excel中图片写入到新的excel中 */
String basePath = "e:\\"; Workbook wb = new HSSFWorkbook();// 根据这个判断生成对应版本的图片
// Workbook wb = new XSSFWorkbook();//根据这个判断生成对应版本的图片
FileInputStream fis = new FileInputStream(basePath + "1.jpg");
byte[] bytes = IOUtils.toByteArray(fis);
int pictureIdx = wb.addPicture(bytes, wb.PICTURE_TYPE_JPEG);
fis.close(); Sheet sheet = wb.createSheet("sheet1");
// 创建一个顶级容器
Drawing drawing = sheet.createDrawingPatriarch();
CreationHelper helper = wb.getCreationHelper();
ClientAnchor anchor = helper.createClientAnchor();
anchor.setCol1(3);
anchor.setRow1(2);
Picture pict = drawing.createPicture(anchor, pictureIdx);
// auto-size picture relative to its top-left corner
pict.resize();// 该方法只支持JPEG 和 PNG后缀文件
String file = "生成的EXCEL.xls";
if (wb instanceof XSSFWorkbook)
file += "x";
FileOutputStream fos = new FileOutputStream(basePath + file); // Row row = sheet.createRow(0);//生成第一行
// row.createCell(0).setCellValue("A");
// row.createCell(1).setCellValue("B");
wb.write(fos);
fos.close();
}
}

POI导出Excel(xls、xlsx均可以,也支持图片)——(三)的更多相关文章

  1. 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

    using System; using System.Collections.Generic; using System.Text; using System.IO; using NPOI.SS.Us ...

  2. winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

    1.通过NUGET管理器下载nopi,在引入命令空间 using System; using System.Collections.Generic; using System.Text; using ...

  3. java poi导出EXCEL xls文件代码

    String _currentPage = request.getParameter("currentPage"); Integer currentPage = 0; if(_cu ...

  4. 关于poi导出excel方式HSSFWorkbook(xls).XSSFWorkbook(xlsx).SXSSFWorkbook.csv的总结

    1.HSSFWorkbook(xls) import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermo ...

  5. 使用Apache POI导出Excel小结--导出XLS格式文档

    使用Apache POI导出Excel小结 关于使用Apache POI导出Excel我大概会分三篇文章去写 使用Apache POI导出Excel小结--导出XLS格式文档 使用Apache POI ...

  6. POI导出EXCEL经典实现

    1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则 ...

  7. 关于poi导出excel三种方式HSSFWorkbook,SXSSFWorkbook,csv的总结

    poi导出excel最常用的是第一种方式HSSFWorkbook,不过这种方式数据量大的话会产生内存溢出问题,SXSSFWorkbook是一种大数据量导出格式,csv是另一种excel导出的一种轻快的 ...

  8. POI导出EXCEL经典实现(转)

    http://www.cnblogs.com/xwdreamer/archive/2011/07/20/2296975.html 1.Apache POI简介 Apache POI是Apache软件基 ...

  9. POI导出Excel和InputStream存储为文件

    POI导出Excel和InputStream存储为文件   本文需要说明的两个问题 InputStream如何保存到某个文件夹下 POI生成Excel POI操作utils类 代码如下.主要步骤如下: ...

随机推荐

  1. C# == 和 Equals

    先看一下解释 msdn对于 == 的解释: 对于预定义的值类型,如果操作数的值相等,则相等运算符 (==) 返回 true,否则返回 false. 对于 string 以外的引用类型,如果两个操作数引 ...

  2. RedIsGood TopCoder - 9915(概率dp)

    ---恢复内容开始--- 论文题: 桌面上有 R 张红牌和 B 张黑牌,随机打乱顺序后放在桌面上,开始一张一张 地翻牌,翻到红牌得到 1 美元,黑牌则付出 1 美元.可以随时停止翻牌,在最优策略下平均 ...

  3. wordcloud词云

    借鉴别人的一个小例子,快速生成词云的代码: from wordcloud import WordCloud f = open(u'txt/AliceEN.txt','r').read() wordcl ...

  4. 洛谷P1247 取火柴游戏

    经典NIM游戏. 取XOR和即可. 注意输出方案时,找到大于异或和sum的,变为a[i] ^ sum即可. #include <cstdio> ; int a[N]; int main() ...

  5. 【洛谷P2607】骑士 没有上司的舞会+

    题目大意:给定一个 N 个点的外向树森林,点有点权.从该树中选出若干顶点组成一个集合,满足任意相邻的两个顶点不同时出现在该集合中,求这样集合中点权和的最大值为多少. 题解:与树相比,该题多了环这个结构 ...

  6. 运行vb写的程序,有些电脑上会弹出一个与office相关的窗口

    到网上搜索了一下,找了几个解决方案,不过我的电脑上没出现过,所以先收藏一下,或许以后能用上. 来自:http://bbs.csdn.net/topics/380204412 今天将注册表的项一个个删除 ...

  7. java基础题整理(1)

    1.使用length属性获取数组长度,使用length()获取字符串的长度: 2.public.private.protected.friendly区别 public表明该数据成员.成员函数是对所有用 ...

  8. codeblocks下的汇编语言

    Debug->Debugging windows->Disassembly F4+F7 每条语句的调试,查看变量 可以通过两者的比较来互相学习 1.通过查看汇编代码学习c如何改进,减少代码 ...

  9. 外显子分析报错解决方案bin field of BAM record does not equal value computed based on alignment start and end, and length of sequence to which read is aligned

    以下链接给出了解决方案:https://gatkforums.broadinstitute.org/gatk/discussion/4290/sam-bin-field-error-for-the-g ...

  10. 洛谷 P1064 金明的预算方案(01背包问题)

    传送门:Problem 1064 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 这道题是 “01”背包问题的变形. 如果不考虑买附件必 ...