文章目录
1、 写图片到excel单元格,XSSFDrawing画图对象
写图片数据到单元格需要注意的一些内容:
- 单元格图片生成需要使用Sheet页的全局画图对象:
XSSFDrawing
,通过sheet.createDrawingPatriarch
创建
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("单元格图片");
// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
XSSFDrawing patriarch = sheet.createDrawingPatriarch();
// 使用patriarch就能画图片了,然后需要做的就是把图片放到对应的位置
// 当前Sheet页所有的单元格图片都通过patriarch对象来生成
- 图片转化成流,然后通过
workbook.addPicture()
添加到工作簿,由patriarch
放到正确的位置
需要注意的是addPicture
接收的两个参数:
- 字节数组:byte[] pictureData
- 输入流:InputStream is
后面所有关于单元格图片生成都围绕这两个参数做文章就ok了,区别就是流的转化方式多种多样!
1.1、本地或远程图片,imageFile转成byte数组
// isLocal = false
static String imageUrl = "https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0923%2F5d579023j00rinl4x000tc000hs00hsm.jpg&thumbnail=660x2147483647&quality=80&type=jpg";
private static byte[] getImageByte(String imageUrl, boolean isLocal) throws IOException {
ByteArrayOutputStream byteArrayOut = null; //字符输出对象
BufferedImage bufferedImage = null;
byte[] byteArray = null;
if (isLocal) {
// 从本地文件读图片流
bufferedImage = ImageIO.read(new FileInputStream(imageUrl));
} else {
// 从远程读图片流:hutool
byteArray = HttpUtil.downloadBytes(imageUrl);
}
// BufferedImage转ByteArrayOutputStream字节流
if (bufferedImage != null) {
byteArrayOut = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", byteArrayOut);
byteArrayOut.flush();
byteArray = byteArrayOut.toByteArray();
byteArrayOut.close();
}
return byteArray;
}
1.2、base64转成byte数组
// 图片转的base64
static String base64 = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAKAAoADASIAAhEBAxEB/8QAHAAAAgMBAQEBAAAAAAAAAAAAAAECAwQFBgcI/8QARRAAAgIBAwICBwQJAgIKAwEAAAECEQMEITEFEkFRBhMiYXGBkTJScrEUIzNCU5KhwdEHYhXhJDRDRFSCg5Pw8RZzsmP/xAAbAQEAAwEBAQEAAAAAAAAAAAAAAQIDBAUGB//EADERAQACAgEDAQYFBAMBAQAAAAABAgMRBBIhMQUGEyIyQVEUQlJxkRVhgbEzQ6EWU//aAAwDAQACEQMRAD8A52R5I5pRWWf2q+0yTy5En+tnx95ksqSzzv7zKG27R6UOA1ly1frcn8zKZZc3c/1uRr8TNmPCpRTthkxJItEwdMs+OGecU/W5E3/uZrx6bN225zv8TJ6aFNM7WmxRcdys2Tp5jUwz426yZP5mY3kzLnLk/mZ7LVaCOaLpHMydIjFPZkxaDpl555c38XJ/Mw9Zn/i5P5mdaXTJKXAZNEoQpK3XiXiYVmrkPLmX/a5P5mL12X+Lk/nZdnxSi23HtRndLzLwppP12X+Lk/mYeuy/xcn87IbeYfNkpT9dl/i5P52Hrsv8XJ/OyHz/AKBS95Al6/N/Gyfzsf6Rm/jZP52V0CWwFn6Rm/jZP52SWozfxsn87KqAnQu/SM38bJ/Ow9fm/jZP52VoY1As9fm/i5P5mP1+b+Nk/nZWhkaE/X5v42T+dh6/N/GyfzsgFDSFiz5b/a5P52P12X+Lk/mZWkMnSFizZf4uT+dklnzfxcn87KlyTQ0Sn6/L/FyfzsPX5f4uT+dkaChpVNZsv8XJ/MySzZP4s/5mVV7xr4kpXeuy/wAWf8zGs2Wv2uT+ZlaVolQ0JrNl/iz/AJmb9LqZLHblJyi/GXJzkiSdeJOiJ06+TXZssIynPn7uxlzZ8ql7OWfa1a9oqU16uNPjwZCTcnbe5WI0iUv0jN/Fn9QWozfxJfUroZfshatRmtfrJfU6Gk1OVzT9bLbnc5aNGDI4SsiYTD0mfO56K1N93mc3Hqcspx/WS2J48izYpONx2+zdkNIu3URvbzsyaN2TNl9Qm5SuyODUZU675cluqywceyDWxnwK8ytuhsbM2ecopKTtBp8uRZEnOW72IT2yV4G/TafvlCVDcJh6fp8X+ipy5Yfo7nmVLe9tieljKGnjZv0rTnbe5zWtru1rC7SxljxqLqy2WoUHTLKTTRzta1iVuXyOeurT3a23WOzatVFsms0ZbKjyebqCxTfbN8j/AOOtQpRuRpPHn6KRmmPL0+e3FUkVJtNPY5Oi1mo1EHKU6T8KOnp4uXKKzXp7StFurvDXjyOXP5FqbohGKS2JmM6axv6mAhlVwRaT5SZITEIlS/t1t9BqNp8fQryykstpezW5fHeKLz2ZRG5lS4NeX0L4XW46GlXBEztatOmdmAgKrmIKsKAAGASQDEAAAAAAMD88ZYd2omv9zI/oze6NE41qMj/3P8yyNOPvPR249IY4KMUmRyRtpInKMk+GQSm5q1Q2Lcce1pUdHSz7NnxZmxwTSbs0OCUdio6Kknwx9sX7L33MGOcommGRr62VlaDlpIttqjJm0b3rk6cJNq2qJ9sautyYtMEw8TrsfbJpxOW4rij2vUOlvP3Sxq3zR5rLop45Pui1XJtWzKa93Nr3BVmz9H38S/FoXJrazTrhGnOWOT4QODS3PSYel90VcaMnUNCsMNo7PxIi8TOiYlxAJSj2tryYki6pDodAltwAUOgoYCGAEAGIZMBoBIZIfiiaIErdeARMJgRTZKwqAENATj4E0QRNcAMaW4kS+QDuiRDkkiSTAAJVC3aLUtiEIty9lWy1wkvcgls0U4xdO6NkpKHtHNwPtkb+yWaKaTopaFqyks6lJ3G7o1JJbrazJHC4STrY2tVFW0rKSsi7e/8AU7HT8j9XFO2/M5uPG5ySSvzOpiwuEVRSy0PTaWSlgjuntuacE13qqXxZxtFHJFJ79ppySlHIlzZjau+zSJdx54wjdnmuu6+pupO15GzPOcMGzdUeW6lmlPMxixxE7L3nTLLUTyztujRp/bTkr2MWCPrc0cd13Or8juQ0mPT4GvWxlNPdI6ZlhO5dTpk12xavZeJ2dPnUpV2tv3HndNN41DsTafkj0HT4uSUmnb5ObNWPLbFM+HTjwKeSME3J0l4sa4OZr1qM03jh7MOL8zkrG5dF7dNdt+PUYsiuE1L4E1ki3V7nHw6TJo433Wm7o0vMo5lLwrYvOOPoyrmt9XSsjN1FvyQscrimN7oy8Oje4eZy9T1T18YxcVi7t1LyPS4n3Y0/M8/1HHjxa+LaTV24vg7mlyRyYIyi49rW1cG+WI6YmGOKdWmJXgAWYNwArGADACAAABIAAAAAQQYAID87TzS/Scibf2nVGjC28kd2ZMkH+ky2/eZu06qSbR6LkdCEE0mxvApO6WxLDvV8Gjw5RWVmVQcXzsOT2LZJEJJUEIxd2X4/PyZniy6MqIlLbCbos7nwZISbpI0xXDZCVi3TpnJ12i7m2lszswSS2ZHJg9dGktxE6Q8zHpspVR0NLoZxjclV+47On0MYpXzRoemUY/vFupGnMljjihwcvWxhmg0qTrx8TsdQxVj9nu7jzuonJTp7Fq95Vs4erw9mRpKq/qZkqfJv1ku6Xd5mFqnZvHhnIAbQ0tiyCAbWwqIAAASAYIFuA0ADCJkAAASiiRFEiTR/MEFAgaTQ7I8DTCuk0ySZBPzHaAndkkQTJp7EwgwFa8wTTJGvRft/kbnplLKu5KntfkcvDllhn3R595pjq5ykm6qylone4XiY07GTpSg4z7o1KKkv8GzHjUMSVJeWxk0ms/SJRjklvVJnfh0ieZY8i3TXgY2tPiy0R9nMy6f1kYuHK5KcuDJFKTV71seox6Dsx9jhztZY+muCV47i1yU61ulyNLgUcUWk91ub8WNSTdbHTx6VerUYJNLwoujonDG5ONETeFoqxae43F8EskvaTT4Fkm4JqtynGpZJpXW5Oh0IQ78T7t7XB5rqeinGbai/oeu0+NL2X4GnNpMeTG04rgz95FZJruHzKCnhzd1NNGrA8uSUnHu7nbfwOr1DpzhmbUPZ8KJ9N0yWaLcavZnR1bjbOI2s6bKcIxTW1+J6nRNOGyqjE9FBRi8cdjpafEscF51ucuW8TDXFWYsvE4pu2iXBFzUVbOV1dmTXajHp8EpSavwR57/i+HLlTpXF70ZPSXU5I6mcYuXa35nmo5JqfcnuehgwfDuXDlvu3Z9BwdWgpRgpbPzN0uoYoOKcl7XkeC0urTduVS95v07y6ty7HfarLX41fKKZrR2b+udRxT9nHKMn5nI0PXdTon2xa7PFUR1vT9QovLtXPbe5yk+2W6p+81pirNOlS1p6tvdx9IO/S48sYtScqaa5+Bu6fqcmfD3yb7m/keGWsz6mMccFbSSqKPb9Gx5YaDGs32kvKjlzYq46t8drWl0U34k1uhUNbHHLprE7SAAKtAAAAAAAJmXU6r1OyVs0s5+sj3OzTHETbuwz2mtdwpn1Kfw+BPD1K3U2c7JtIgkmdnuqTHhyRmt93yKcf+lZPK2WwyKLSpkpwvLkpPeQ4YLd77EtpbcOROCrnyNKku3kyY4dl15FluK3pIJha3uRk/oV+sV8ofemuSEpWqRKO9EEk3sy2MWgLsapmmLve9jGnT3Lcc1xfiUmEtsXvyjZggnT2OdB268TqaaVdvmVQ3Y8dxTYZIx7XexZCXdGyGZd0JBMOHrHXvOJqtJ63dOpeZ6HNicpNU6KVo1Jq758y0W0rMbeUydKlJeb+Bjz9KlFP2WfQf0OKW5ztdjhBV2msZJV6XgMmGWKVNMjR2epY4tWorZ0cmUdzWs7jbOY0g1sRaJMRaEFwIkxcFgrGhVuS+QAMAGgAA0gg0yQtvIYNga8RDQNpIaWwkSQQBodbCXIQl4jsiPwLQHt5jTVkasaiSLE1ZZj3kl42VJE4ycWmvAgdfTzhhlFyjbTPT6Tr7w9sYtKHkzxCzNryLI5pLezOcfV5TFtPq/Ttfh6hByjVrlX/U6XYnjq9j5f6P67Jg6nDIpS7VtKPgz3+TqccKg6bUn5WcmWnTPZtW21kdPkw6lzTbi/edVJSx7rZrczY88ZxTpU1ZN5nVQV1yYTEtI05Gp00/Wtp3HwfmVYMWT18VTTR6LHBTgm4pP4D/RoLJ31bL++7aT7uZ7wz4MHZTbts0TTcGvMmoNMJbLcym25IrLh6rHNN3uvIr0uFuXkrOjq5QT+JXgcLSTSb8PE6ItPSy8OhhhUEXohjVQW9k21FW+DktO5dVY7bLJLsg5U3SukcrW639Q2rSa3rwN/6Xik3CMk5LlHD9IsuHBhja7XLjt2NsNd2iJhlltPTuJcTWZMeoUe+/izC9JinLsUuyX3nwZ9RqG0oqT2K46uSftOz1a1mI04ZnZZ8UtPPtck3fKO16MZE+pRjKUnFxar3nDz53kfh9DodE1kdJqJZWrl2/AjJWZpMFJ1O5ej6zjjjSinSbT3ZxtTDSyanCu795yRHqXUJ6nO5Kaca2ryOXKTd7spixzFY2m1u/Z6H0ewYZdRc5JbI9rFJRVce4+Y6bWzwJKOz4bPXdK61GUFGbSjFHNysNpnqh04MtY7S9EM52LquHLkUVdPh0dBOzhtWa+XVW0W8JIAAquAAAAAACLKskFLlFzE42WidKXr1Rpyc+kcm3GjE8bjKmdjJ3QyceyRnhx5VaVSOmuWYhw2xfZ8QeRevmn5mrE7b8jDkh/0idN8mzG9kbNZalHf3EJx/IlGTFJqveCGfIq3KlNqdN7F099mZMycXaIJb8crarc1R3VnK0uSXckdXG7W5JEhvdhi2kOUFyPHSkQs2Y5bo24puK28fExYo8M1wVUZyN2LLJUr2oujNye72MUZNGmD95CYWPEpO0uRw08bVLxLoLZFrVJWkEsmaKhF+ZwNdOMsnZw0tmdrXZlCMm2eY12RTlKafBeFJcjqThGD8XfKOJJ2atXm75NeCMbZ01jUMbd5Jt2IW9hZZBgIZYA6YIaAXb5jSVEgCAAVsAQEOgSGgiQNBQ0gg0tySXkJElwEgOQJJKwI0MlQ6stAFFNXY68gSVDVAA0lfIVY0giZNMmnsRSRNLbYlDVotRLT5lJNrzPQYuuZJ5sbco1Haq2fyPN1UFIeOUoSTTKWpW3leLTD69oM+PVabHJKKbX2V4GuKjjtNrzqz5z0nrubBFwTjaW1k4dd1GTVqUsrlJ8e45bced9l4yw+m45pxT4RPvjxa+p4zL6Uxjp4whOstVJtbGDS9d9qa1OaTg+Gt6Mfw9pbRniH0F5IJ13Kzk9Q6i8U+yF9y8PM84/SB4oN4M0ZU1zy0aIdT0+oxRzZ5xjS3hHzLV4817yrbNvwnqtbLuTns+U0x4sk8uthSlT9ruR5nqHUHqNTNx2hxFG/oeol+lRUp8K3vwjeaaqyi257voeJr1cd/AxdW10dJp/90uDmZOrRjNx7k6dbMydR1GPqOJw70pwVq3s0c1cE9W5dFsvw6hmfVni78kJJTvazndW6pPXShKbTa8Fwjm58jU3G3RU5WveejXFWJiXHN58FObbppEbI2mF/E2iGcJd21E8c3F7PnYq5GnTolLX61VVgpNszwjclzuzsaLpU9RFzbagvFK7KWmK+SImWCrXxOj0/MoyUJJJPazW+iRhC3JrybMOTTfo84ytt393Yzm1bR2XisvR9N02oz5opezhVOUnHd/A9RFUjjdC6jHW4pQS9rEknLzOyjyc9pm2pehhrEV7JAAGLYAAAABYrQDArnljBXJ0jNLX4brvRaKzPhSb1jynqckYQbZnwZYSveviZNXrFmfbH7K8TMpuzppinp7uLJl3bs+U5Y3qJ+XcXQjsrZHI162fxYoyo1aS0p1e5F7sgp2SsBNJ87kJY1J01t5k3LekTiraXmBRjw9k9joYINy3TSJ4MFLdfA2wgklXmRNuxpS4KqSFHHFNeZsWO1skyyOnuSdFdrKsUaTZoirrcnHBK+Niz1biroqFFbmrFFWnRmvtEtZGMqtAdeFLyKtRnUIt3ZzZ9SUdkzPn1inBtumTEG1Wv1qalf0Z5jVa5JzjW3gW67V3lnFvZHCzZO+TZvSn3UvZXml3TbKbJSdsibMhYBQEgQwGADQgJEwoSGgiR4Ahi4CqSAE9hhJoaENcAMkuCKGmEGSREe4EkSRBE1wTAYIEiTWxYkIkiKJEKmuSSdEI8k0SLlL2Ke4o15kboE9yEr1NpbNiWRxlae/mV2NBVe88pqpSbBZGimPJOy0JWrJuWRzTjw+TOnuSQlC9NzlzvyT/SJY5Lsk1JeKdGfua4B77tFdDbh1UkpPul3S3bs6vTM8cmVwnx2tps88nSXmjR+kSWOls+NhpO5X6iSeWST2so72uGVufc7YJqy0I0sTJbFabv3Ei0SjSV38DodPx4Zxm5xUpcRTZz1wWYpvHNSVWmRbvBD1Wh6FjeH12R+P2aPSdO0WHFCfZFpeVnN0GpwrpkJ6nVxko+1xSivL5Hf00sUsMZYZKWOStSXieVnyXt2l2Ya1cDrMVjn2u4R5VKzm6Z6XNjljyOTk3tcTvdX0OXVZMXbJ+rv2olWn6Dhhki3j4d33M0pmrGPUq2xWm3Zu6RpIaXRxShGMpbvtR0iMI9sUlwM4rT1Tt2VjUaNXW9WMjYnNRVt0iqyYrILJGStO17jk9S6ooKWLHfdw5F8eO151Cl8kVjculn1OPDG5SX1Ofm6nFwfZz8Tz0s0pP7Td+bBZWn5nfTixHlxXzzMuhl1eXL++0ilJvm2UKbfkXQnsbdOo7M5mZ8rYx9xfHDJrYpjNGnHkpcGdtpjT5Pk3yS/EwSVFcp3lnT/eZNPYo6D44Jpv5CSE3TAsjG3bNmHEuWt0zJjdtJHRwxtquCsphoxwb+ZoxYn3U65I41uascUnZSUrcWNXwuDTDErWxDCjbjSVEJVLBLmlRVlj2RbOkqqjJqsacXzTQhEvPa7XLG3FKkjlS1qm+7u4Zo6thm3KjzOXLLGpQ8Talds5l2Z6xqXc5bEMnUl2u34HC/SJPZ8Cc7XJfo0ibLNTnc8jafJkfv5JSlbK3yaQrsnyAmwJDAQEoCGJDAY0thLkmAkhgMKyXI0txLkkggVQwGSkIfgJckgBDQhhBggBBCSJxarkrGuUTCViGxICyEkSIokgg0tyaIxGAx0JDAkuSW5GPJIBx5JoguSaAaJIilv7iS5JDQwAjQCcRJE4onSB22w7Un4k9golGyS3JqI1EkohJKPkSUX8hpEqCG3Rxed+qlJqJ7/o6UNDjxqXd27WeA6enLM1FpOr3dHs+jauMNPU5Pu8Tk5VZmvZrhtFbd3ay5oYYOc3UVzsLHqcWT7E0zznWdVmlFv1j7L2Udtvec3TazKlKUJVL4nPXizau2859TqHt1mhJ0pbrwI5czhG1FyPK6TrM9PmlLIu7u5fibNR17D2VHutryKzxbxOtH4h2Ja+MYXW78Dmazq0knGNK/JnEydTnlvZK+Chzct29zqx8SI7yyvnmY1Dorq2aCko8PzZlnn9Y7d/UzNt+I068TojHWveGPVM+Vtp+JJMqVck4tMsLE2XQb8imLRbF0ispaIMvhMyxZbBmVoIl8plL9dOvvMvx8blEklmnV/aZoxLdGDqXR3t0S7V4lmOF8+JdHD7WybKylXghvstjoYI+7xKsWOqVbm3HDwXzZWVoWY47GmEWlbFjgq+HgaIxtECeJNGzHTrcz44+fJpxqmiBcuCnP9jkteyspytOIgl5rrLSi39TxOqleSR7fq0O/Z8Hk9To3HI+Wjak92cuVv5A9kTyQcJPyK6fibK6JsgyTE1sBEa4EkxrgtCJFAMK9xKAgD5DJBwNbiJRBJhYDCkgaEPwAaGJDAaGIYAMQ1wAxoQIBjXNiGlsWhCaJCXAeJKEkSIxJANPYlv5EVwTQAuBpC8SSAkkPgSH4ANPfYmiEeSZMBko8kE9yS5JE7sBcIZAkn5k1LzKiaJhSVqaZJcIqXJbEtpELF5jv3MiveTCxWSRF8kgiVsZJJVz4m/BqskGqna5OYi2MqImNm3ZydQ74SWSNuS2dmFTabadL3FEbl5sHsVivSnqXPLutmPvvzKVRJPcubXqZYnsZ4tFqkQLbTfIJkFySXJAmmTRWvEsirohZOOzsui7oqS3LoESLY3RdB7lWOMpOkbNPpZ5JJ00jG9oiO5ETPh8lkqz5F/uZowrdeJmk71E/xM0420q/qYOtvxPg1QVbqjJj4Rsx7xRWUwtjGmuODVDgzRdtL3GqHBVLRjjaZrhFJfIz4nRphvY0L4JeRcqXCKoLj4FnCsiQSkyjI7TRZJszSk7e5CS03ScWuk8uqn2aaLp9vMn5I6T9E/R/V4JQxY5KT/ejlfcvqeY6v1DLghp8UJNRqT2+P/0HTF1PUZIy0scs5Xv28L5mM2ttpFY04/pT6LZeh5oPv9bp8t9k6pprwfvPO/obfjsfROu9Q1Gbo2bSa6NTi0498faUk/8A7PEZOHR2Yrzavdz5K9M9nIyQcJU+Cp1ezNuaHe9ufzMbTT4NolnKIUOrDjxLIAhiJDAEBIBoRKIEgAAoBrcVAmBIYrGAxiSsmkAUMAAXgCAEBJEtiKGWhCaH4EUySAaJIihphCaJIil4jW72AkNC4CyRNEuSKaskgGMQ0hAaZJMjQ0iyE1uMinsNMBrkmiC8ySewg0muSabRWuSaZZGlsZMnZSmyab8gJt+Q14EFzuTQQkuSS5K1yTQG7S6hYmu6MZK73RbrpYZyjLCopO7SXDMC95NMiaxvYZJCStkuCdgRbFcFceS2JEpiE/ElHxEo2y7HicmlXJXa0QIq+S+EPBbsux6eK+0aYrFj3KTdbpUY9Lkk+KNuPRJL2iv9KitorcTzzl4mVuqU/DDoY44cK2SJ/pkI7JHK7m3u2SUqZnOLflPXMeHy6UF6+fH2maIRVqiqX7ef4maMe7RVu1QWyNON1S8DPDhWXRZWSGmD3Rqg1vuY4tWvgaIS3IWbccknz4GrG1z7zn45bmvFLYDfB7L4E72M8JezH4Fqa8ysgnKjJklXzZrlByWyMOaLi+KRCXP6hp4aiC7l7S+y/I9T0tSx5Y49PKOOCXDhfsvit9v6nl8r9tpHb6ZKOaMO6UlVNVJr3NbGWWO218fl28fT5a7SvH1nS6fNOE2ozUdpx8JV+6/NGfU9E6JCDwZ+k4I6dpyeZpRjH4yu0Z+uaeeg0OTW6TUarHSqUVmk0r4lT8nXybPB6nVPFOU9XmlqMskpwee8uz32vbYpWtpjs0ma/V3vSLono1pug5tVoMDWWksWSEpOLd+b2a2Z8zyqsj2PVazq+s1XScGGWeUsCcoyi63adq/k/wCh5fU2ssnWzex24ItEfE5MupnsqIvmxWwOiGQEMCwEAASiQSiRslECQCAEmC8RDXIVNEiKJBCUSZCJIJMBAADQ0rCqAEMESLICGJDAY0RJIITTJIhEmuAg7GJDJDXJNPcgTXA0lIkRGSJAmIa5JQkhiQ0AxoQ1wISmiSIImuCwkiSe5FPcEQLU7JrgqiyyyVdGiatEI8lsUqCdGnZYkVpVwWxTasjaDROMbfAQhatsvgopLf6ldp0jDG2zRDBvvQLKorZITzNuqImZlMNMYwh8SyOaK2rcxqV+JZF1RXS22h5pPx2Dvb5ZT3D7rGja9NXyTUq8TP3eRJS8xpC9Stk4vcpjNFsJW0vMiYHy9Tb1U939pm/E918DmLbUzf8AuZuxZFaVHLLpb48F0LozwbovjdFZTC+Da+hdGTtGeNlsGws1Y3uzVjkYYzp34l8Mm2xA6GKauvcXxkc6OTdb7miOS0VmBuTtFOeHdF1V+DILJ7KLFJNEJcnLhkpP4m3peXtk1fEv6Mepr1fgc/RaiUNc8cl9qLafnW5W0bqVnVnudZi/Tuh6nEk28mCSSfnW39T49q5vN0zTZX9rHKWGX/8AS/ufZOlzUtMo3dHybqumen1PWtCk16nN62PwUn/aRGGdTpfJ4czBqcb0WqwZJJSfbkx2+ZJ018Wm/ocvK2222q8NyGsjJaWeWH2sTWRfJ2U6qKUlOP2ZruRnyeZbj21Eb29r0n0bHz8UzNtTCViteZSnFrd7g4prY5v6vb9L1v8A5HH9ck/wtteY1b43+BmlGSVpOiCzTxrZtD+sX/Sn/wCSw/rlt7ZeT+gdr8n9DGupZoNPubS8GyyPXGnUoJlo9Xt+lnb2Sp9Lr+1p7pklsQj13FXtYn9bLY9b0cvtQkv/AClo9Y+9f/WNvZK30v8A+FdhuWLqPT8nl/KWxyaLI6jNJ/E1r6tj+tZc1/ZXkR8tolnXvGjX+jY3vGTa9zsg9L5S/ob19TwT5nTiv7Oc6visT/lQvEkWfo7rZ38h/o864NY53Hn8zkt6Lza+ccoRJMaw5E9o2RknD7S7fiXjlYp8Whhb07lV845/gDKJanDB+1Jr5EHrtNHnKvoyfxOH9Ufyf03l/wD5z/DYhmH/AIro098y+jJf8U0P8eP0ZP4nF+qP5P6by4845/htQ/Axf8U0X/iI/RjXVNDX/WoL42WjkYv1R/Ks8Dkx/wBc/wAS2DRkXU9C+NXi+pJdQ0X/AIvD/MWjPjn80fypPDzx5pP8NJJcGb9O0f8A4vD/ADAuo6L/AMXh/mE5sf3hX8Jm/RP8NcSaMa6jol/3rD/MTjrtJLjU4n/5kPfU+8I/B5v0z/DUhlcMuOa9nJGXwZNtXRat4nxKlsN6/NEpIlErW5NMvtnPZPxHZC/EaYQsQ0RGWQkmSTILkmgGSXBEaYEkiS2ZBSY+SdixPckV3uWIgNJk1wJE4pN7snYcUWx8Su0ls7JKSK7Svil4k04q6RnUrZNSAvU2ns9h9zfjZWnexOOwE4t8E1a4IK72JK75GhNS+pZF7lSaZJMC5SY3LcgpbCcrIF3cSUjPGXvJqQTtenuWxnuZ4v3lkJXJLzCHzV7aif4masW8lRgllvUT4+0zXhkrtM4ph0xLq4VsjTHgx4ci2VmuDWxWVoXRJcDjGyXZZCxKRJTrbuaIyTimUSypeJI2RyNbssjqF4SOTkz9q2ZRj1blkpvkjSNvSQz2l7S+poxZ7dWcGOSq3L46lQ37myNG3U1OePZTZxJ6yEOo6eVulkSb9z2/uR1etuGz3PPZ9Rk9Z3W9na3J6eyOru+x9Cy2u1veqPH+l2ljp/TJN0oa3D2v3tpx/NI7vo7q1lljyJ7SqX1Rk/1I079R07XR2eLK4OXx3X9Uc1e129u9XzVQUscoSW6uMr+jORFuXT8cXvLFJ438tv8AB6LqUYYNdlSdRm++N+Ut/wC5wFvn1eNNe0lkX5P8kYep06sdbw+i9l+R0Z7Yp+rN4e8am4+ILcVHhv0CF0c6fKsseLDNfExtbjU3HZMGl2Tpykrg7MWTpuSrUXZrhqpRdM149Sp1uES89PS5IumiqUJRdM9TLHjzLek/MyZOndz9lJhHZ562nySjnyRat3R0c/TZpv2aMWTRzi+H8yVJifMJw6hlhK1KS+DL8XWdRBbycnfiYZaecV5kHBx2ZKs9X1d2HXpJR7oxfma8XWcM6Ti42eU3TGpuPDJ7q7rPmHtsetwz2U4/PYtUoSriXzs8PHUZI8SN+g1cZ6mMNTnlhxvb1kY32vza8iNypbpiNvSzwYsyfsL4IxZOkQmrjOm+FJeB18fQOqLLjeHPhz4JtfrIS4je735rnxOr6X4cXT46TPixxlicfVyktqr7O/wv6HNPJp11rE95ccc7FOWuOk728Fm6JmTdRTXmmYM2hz4XTxz+h6qGtwyVp2n5k/0jC19pfBnRuXo6ifo8TKMoummn7yLTZ7DJptHqOVC/NGPL0HDJSeLJUnxfCJ3Ks44eZcdwr2edzr5uh6uCuMVP8LMGTSZ8TqeKafvRbqlnOKPszpWxOO+xOmnTW4DqV93VDtJRl2+A23Qhs6IhpxayePeJ1NN1+WNVkj3L4nE9kVImL2idxKbY6WjVoiXr8PXtLOu+4mzF1HS5XSyx+p4T2l4gsko72zopzc9Pls8/N6Rwsvz0fQ45McqSmt/eTjJOVJqzwOPW5sclKMpJrxs1Yes6nHPueRy8ovg6qerZq/NG3mZvZbi3747TV7dckvE8tg9IZJJZUpKtzfg6/p5RjGTkpPz8Dsx+sUn5408vP7J5qxvFbbtpk0znYep6fI5Vkjt5ujVHU4mrUjsr6lx7R8zycvs/z6Tro20WNGaWrhFXUmvcjFn6/g07p6fNL3pL/Jb8fx/1wzj0Pnz/ANcuuiSZ5mXphhjstFkfxmkQ/wDzSC40D/8Ac/5Ef1Hjx+ZrHoHPn8n/ALD1SW9k1I8rH00g/taGS+GRf4LI+mWl/e0uaPwkmP6jx5/Mrb0HnR+T/T1KkPuv3Hk36a6dRtaPN3eXcqOl0Prseszzxjp54vVJNtyTuy9OZhvbprbcufN6Vy8FJyZKaiHbTZKLIIlGvE6oeetTRNSKrokpEi5PxTJqXmUxaomnsBfGXkTspi15k01fJIsVeZJMqT3JrkgW37PIluiPgNPYjQnRJfEg26BMaF0X7y2D3W5ni9y2Nyku0TA+V5G45ptX9pmjBmaq2PJhXrMlX9p8ma3BpHL5beHVx6h2qbOzo5qai5K0eZwzbkveeg0MvYjRnaF6y7MUkiVqiiM327hKbSujLTTZZ8qiuDmZsjT2fJfmyt7bGDPNx45o0iFZkTzUn3PdmZ51HIqdV4oz55N1uZZzakaRDOZdn/iE4pK1Ro0+qWZ03T8DhYpqWzJ+scJJp078BNYTEu/kUJwkm1a95wdRLtyO2qFk1eR79xjy5nPZ8e4RUl9D9ENZ63Radpv2G4P5PY9R6caVdQ9CdZJRcnjjHMkv9r3/AKWfO/QvVOPr8N/ZmppfFUfWcGJa3omTTT3WTHLG796OLJHTkdVe9Hw3qM/WaDp2pi+5PE8Un74y2T+TRyLWPW6fK+HJ45fCS/yjqqEv+CavTS3npNUpV5J3F/1SORni54JxSuSXdHfxW6/I05GLrwWh0emcj3HLpcsi7ZtVvZC/5izPNZO3IqqcVIzu+T5aX6xTvG4W88kZIgsjXJJTT8UFkGudxKTi07pryJtpoi1sEpw1M4Nbs2YdfdXyc50JNhExEvYdH6f/AMbwa31SvNhhGcI/e5tf0295y8mnx5E9qd7prdHov9NZ1n18m9lGC/qxemvSv0LU/wDFMCSw55VkS4jPz+D/AD+JxV5euTOG3+Hh15s4+bbDae0+Hj8vT2rquTHn0Uot2v6HVjq4yXa2iztjNVdpnbL2q2+7zU8Ph2/NIolha2R6bJooy3VGHNomr2IiZJrWzhuDTFbjujoZNNJNmWWOnui0Syti14e49As+uWkz9029JF9uOMvCXjXu3PWPUYpYJLPijkx1bUo9ySVvj5cfA+SR6prsGkWkw6ieLApOXbDZtv3rc2dE9I9T0jP2ZJSy6PJK8uN70/vL3/mcGfgTlvOWJ7vnOT6fktktk8Oh1nqvRMuWunaGeOTW81Ltjf4f/o5ayucdnuYta8UNdmenyLJhc24SXjG9vgLDnjGSb+aO6MfTWIh73DmKUiu/5aMk8qpptbkVrdTj4yS+pv02TTZ4pSdfE0ZOkY5w7sct/jaJh12052PrOqx/vX8VZoXpBOXs5sMJIqzdKywV1a9xgyaecHwxtnNXYWq6bqFeXTKMn+9HYi+naHO7xajtfFSRxJRlHlNAs04cMlXcR5dTL0HNFd2OUZp8UzBk0GpxN92KSr3F+HquXGopN7eZtx9enspwUl4giKy4jjKLpp2R3PSLW9P1TXrcPte5EJdO0GolWLLKL8mNonH9nnvATOzm6DlVvDKM1eyumYMvTtTibUsUtidqTSzJQUTeOUeU0KgrpG2iayNEaDgETMeF0M8ou9zVh6hmx7Kckr8znP4j7qXvGloyT9XocHWppRjNppeNGuOv02oj+silfieUUmSWRx4ZGlotV6PN0nS6lOWOcU35HH1XS8+lk1KDcUr7ktirHq8kHtJo6GHq+SK7XK15Pex3hbVbOO4uO1Eb8TuyjodYm2vUzatyhx9DHk6VlaUtPKGeL4UHUvoyYsyvTTnNpo9r6FY+zp2oy1vPLX0SPHy02ZPteNprwao9x6ISiui+r4lDLLuXxPT9M1Ofu+c9o+qOHOvvD0Cdk4srRNbbn08PzuU7sklsQTJb0ShYixWl4FUWTUgLE2WJ7clW78SSvxoC0nHYqTJJ1yBb3MXdWwk9h1uBNO+Roiqoa5AmuTTiXtJ3XuKMcLdsvi68SJkfMXPuzZI3v3MTgnuTzaZR1GRpv7TBRrw2OPbcortao6+izJRUXyjlT3VJbixZnjmr28xMJh6qOT2fd5lWfP2pruOdj1icUlJfMqzai03yUivdffZfLL3N70Zc813bO3RllqHuQeZvfazSKqbSlK5PyKMiu2glP2uUQlNU9y0QrMoqbg9mL10nLkrlLzIpq0SlfKVopd2TjugaJRt1fRnO8HVe3wyQa+a3R9p6BqFlwON70mfBdFmen1+DJf2ci+nD/M+y+jOpXfBNrdUcPJjVtunDPw6fPusaX9F9M+taBrthqYzcV5truX9UeTjbptV5n0X/AFGwrQ+l3TOopVHLFRk78Yv/AAzwWv0/6N1DUYfCGRpfC9v6G+KeqmpZzM1ybhixKL0bh2+1iyOLfu8CuatbFmJKOozQvbJDuXxQRabo+W5FOjLar9b9Mzxm41Lx9YZpQafJBqtzoepUlasqno3u6Zg9CWPvaap0SWR+Zs0fSc+vz+pwyxLI+I5J9t/C+Trr0D65/CwL/wBZGd82Ok6tbTlycvDjnpvbUvOuSYWeifoJ1xfuaf8A99CXoN1v+Hpv/fRT8Vh/VDL+o8b9cO7/AKcQksOvypey5xi/o3/c9jrdLi1ujy6XPDuxZY9skcX0P6Pqui9Oz4tYoLJky9yUJ921JHodmj5rn5d8mb0l8f6hni/JtekvjHVdBm6N1LLpMttRdxk/3ovhlGPVKLW7PpvpX6OvreihLTqK1mJ+w5OlJeKbPGf/AIH1xf8AZ6b/AN9Hvcbn4smKJvaIn6vpOF6phvhj3ltWYsWpUqppl67JxpmmPoN1xfuadf8ArI0YvQ7rcNnDA/8A1kbfisP6odc8/jfS8ORk0ikm40zn59Irfsne12h1fSpxx6xY4TluoxmpOvPbwKFOGVb0b1tF43V04s1b16qzuHmc2lStoxzxtP4HqsujhO3Hk5+fp7V/AtEzC1qVs4O4Lk25tJKPCM0oOPgWidua2Oat3R44s3UcWn1N9uZ9icXTjJ8NP4nS1mn1/Rtb6nueSEn+rnFbTX+fNeAuh9O6VqJQy6nqcI5otNYpJwp/HxPedqlUk1JXaa3+aOTk8qMVo7PF5XqWTBl+GNx/d5N5tVpcOPJrtN6qOR1FtpOXyBx0erTS7e76Gf0z/TFr8U5qX6OoKMJeF8s89h1uSElub4rTkxxf7vV4fJ99ii9u0y7+fo/dfY/k0cnUdOyYpPvg4141sbNN1ucKU33L3nTx9U02ddsvZvz4L6dkzM+e7yc8Uocq15or3Xgeuy9P0+dOUKi393dHM1XSckVaipLziTtTo34cVTaLY6iaafc7Hk00obNOyhxa5RKPiq6OHqmbE/tX8ToYuvJ0smNS9550ae5Gj3m/L1PrOnavmKTfOxnydHw5PawTTRwo5ZQdxbRqw6/JiSqb54I00i0J5uk5sfEWY56fJBtOLO5g6wmorIlK/M0OWk1fPsyobPdxLyri/ETieiz9HU03jkmc7J07JBtNP3E9TOcP2c4C+ennB7oq7Wids5pMIElKkFCdeRKO8JrI1wX49ZODVN7GQCNJjJaHYj1RTSjmhGaXDa3R1+kdS0ujyyac+zJVrmn5nkraHHJKLtM0xZLYrRak92XIx4uRjnHljcS+p6bWafVJvDkUq5V7o0xarY+Z9L6nk03UcE7bj3qMkvFPZn0qLSlsfT8DlTnr8XmH5v636bXhZY93PwysJJ7EE/Aknuehp4m00TTK09iaZOhNMmmVp+ZJMaSuXA0QT2JNquRoWKq5J2qKYsknuRIssshyVJeZNMiRde+xOLdlMZFkZbkDwWZr1+Tf95lMluZNRnUdVlpv7TJR1CaVM5OnToidnkm02kVOTezCUm23RByde8uiWnHNxSa8ife3szJDM1s9ySyu9xEG05+YqaS2DvXmiTz1FpJN+Y0KJ33PYi20+Cc597tspkTCobIN09gb2IgWKckqToazNKnuVgSLFNvjaj6p6MayM8OnzR2jJJ/Px/qfKE6T3Pc+h+ob0UI3fZLtS+f/ADOblV+GJbYJ+LT0v+qmj/SPRvS6yK9rBmVv3SVfnR8y6snPJpdW2/8ApGCMn+Jey/yPs/pHpl1P0K1+FRuSwtpeTjv/AGPjU3+k+j2GXL02aUX+GaTX9UyOPb4U5o+JyZy7MuHJW3d2t+57FEm4ZGuGmXaiPfgnFc1a+KKs8lOMMq4nFM8b1TH05er7v0D2W5HXxfdz+WVkNU41uzfh1EZ7Pk4jmqHDNW6e55j6mfDvPDGe65Ox0v0l6h01rHqHLVadbVJ+1H4S/wAnl8GslH946eHVRyKmkZ5cVMtem8OTkcXHmjV42+j9O6tourxf6LmXel7WOW04/FG54+1+19UfLFFxyRyY5yhKLuMoupR+Z6Pp3pXqdPGOHqcXmxXSzwXtL8S8fkeFyvS71+LF3j7Pmub6RekdWLvD2CdLcO+uCGnyY9Xp4anTyjkw5FcZx4Y2n5HiWiYnUvAtE1nUpd4XZAj3PgrCIlc3aSZ5r0k9LMPRIvBplHNrX+7+7j98vf7jD6Vel8+nSn0/RxktVS7ssltFPy82fN55Z5ZynOTlKTttu22fQen+nTaIyZfH2fQ+nemzl1kyfL/tr1HUNTq9RPNnzSnkm7lJvf8A+e4li1Mo1bOfbTJRl72e7EREah9XjiKV6Yjs7mPWWt2maIzxzVOt/M4EcqS3Zfh1Pa+fAna3T9nTyaSE90c7U6Bq/ZNWPVv2altRohmjka2VvxGkd/q83k0slvR6voPWP0T0d1iyO8ml3gn4qXC+v5mfJp4ZLuPzRgz6FpNJWviUvjjJXps4+Xw6ciNSjL0n1efTPT63Dh1eF8qa7ZP5ryOJJx9ZJwTjG/ZTdtL4mrLo+18NGaWKUd6NaxWsarGmdOLXFO6xpWpUXQyuNeJQ0xXXmW1tpF5q6mn6jkxS2bivczq6frKlFesS322PMd23JOGRxezKzDSMkT5eta0usWzjb80YtR0jZuG68jjY9VONb0/M6em6tONRlK1xTK6mGtbbYc+ilBu00ZJY3HlHqseo02rVSST95Tn6SsibwtNeVk7LUrP9nmAN+p6fkxSfsNfIxSg06aJiWNqTAUmvgWQzyi9mU9oUSRa0Opg6lkx17XyZ0cXU8WZVljTPNptO0TWRre9yNNIy/d6Welw6iN42n5IwZ+nOLvtfBiwa7LikmpUdLD1mVJZEpJFdaaRbbmz0cvBNGeWCUbfkekjqNJqIxbXZN+Qp9Px5F+rkpe7xETKJpWXmHF0Rrc72Xpbj+7z5Iw5NE4cxaJ6mc4fs55Frc1S07tlTxteBaLQytisWmTerwL//AFj+aPrXEmfKtFBf8S0yfDyw/NH1KMn3Oz3/AEefmfDe1UTFse/7rCSbRBPcmnue8+OSTZJMghoLQtTJptFS2Jp2glZZJO0VjXI2LF4FsSmO/wDksjKvErKFu9DXBDuHbrgqlNWWRbKkyyLqSQHyrPK9Tk/E/wAxxl7yvP8A9ZyfiYRZg1js1RltyDVoqjOi1STQ0sgou7Gy7Gu50uSWTDW7dEb0jTOK6Y5rtbRTZbaE2/eRbtEbFexAHwR7gbEA+4d8ESSJDW56P0T1Pq8+XE5NbqS/L/B5w6PRMvq+pwV0ppr+/wDYzzRvHK2OdXh926O4anp+TFs4yj21/Q+J49PLDk6z0yX2sfdKKfnjl/iz656LahKoul3Rrc+f+lOnh03/AFKyJ7YtVUpfCce1nHx51Mw6c0biJeMSTa8UY1FrSyxvnFNxXwN2TE8OWeKXMJOL+ToyS21OWG1Tippe9bP+xj6rTeOLR9H0PsryIpybYp/NH+mCUWQbrY0ygUZIUzwH6H9CjlcfM0YtW1LloxStEVNrxCk31Ono9P1Fqu7c6OLUY88fD5nkMedxa2ujXh1ko8NplZhW8VtWdPvfozpYr0b0kdt4uW/vbZpy6OUbtfNFPo9njj6JoscnusEPyR0dbrtPpNNLPmnGOOKttnxOavvMtojzt+dZYm2Wf3cjJglFmeUWnujzPVvS3qU9bHLolCGmxvbHKNuf4v8ACOl030p0fUnHDnrS6h7KGR+zJ+6X9mdF/TeRjr1a3DpyenZ8dIyTHZwfTjoX6Zo/+IYIXmwL20uZQ/5f5PmrtcH33JhuMotWmt0/E+P+lXQp9F6rKMYv9Hy+3ifkvGPyPZ9K5XVX3NvMeHt+jcvt7m/+HCU2He7K/EL3PXfRRZenaJqdFCkF2QtFmqGX2ttqNOPUNVd15nOUixTp7P4hMS7GPVtVvZojmjNU1TZw4ZWjZp55sqbhjnOKdPti3QmYiNyWmsRuezfkwLLCTULS5dcHOzaPa0me19EOlPXLXafVYpxxTxRXtRaad7NNnO1fQ9dpdVlwPTZcnY674QbUl5nLHJp7yab8PPpz8c5bY5nw8Xl0jttc+RlljlFu0eq1WgyYWo5ccscmrXcqs5mXTvfuidVb7jcOvopeN1lxGgNubTVujLLG4svEsLY5qhZNTogwJViZhohnlDhm7T9SyY69p7eZySSk0V6Wtcsx5eoxdTw54qOZXfixZunYdQnLDKPuPORzNM1YNZPG04ya89ys102res+EtR07Lhe8WYpRadM7+HqsJw7c0VJDy6HS6yPdhmoy+6IlFqRLzoUbM+gzYW7jaXiZJWtmmWidsrV15Ktwtoj3DJU39lkcsotbmjHrcka9t0Y26Y72Glq5Jh18fVcqik538TVHqOPJGpwjKzzykOORp2mV6WkZY+r0TWjyqt4v3eBXPp2PJFvHkTfgcZahl+PWzXiRprF6z9V70ObFOM1G+1pqUfce+02eOowQzQ3Ulfz8TwmLqco1vv4nV6d1xYHKL+zJ214Wel6dy4499W8S+c9f9JtzscWx/NX/ANeuRNI5+j6lp9Y+3HOp89jf5eZ0FwfT4s1ckdVJ2/NeRxcvHv0Za6lIKBckjXbE0SiRXA1wSlYqq7JJLkguCSasgSskntyQe/AJ1yBcmmiSkVJ+BK1x4jQuT3Jp7p+NlEWTi7nEiYHy7P8A9ZyfiZFcDz/9ZyfiYlwc8NUt0ShIgCe/ITDbgmozTZ1np45sNrmuDgxk+5Ueh0afqV3Wtito1CYcXPicJO0Y29zudRUWrS8DiSXtWIlWSB1QCfBaBEACn7yQLkmvEh2v3k0uSQFumyeq1OLJe8ZJlVD3ExuNEdp2+w+jWq7cuNp7eLOR/qzo3j1/TOow27oyxuS807RR6M6tSxYpOW9Rf9mei/1E036Z6EwzreWCcZ386f5nm0+HK7bd8b5Z1mHb1KWWK9jPCOZf+Zb/ANbORnqGTFkrZS7X8GdjXN5ek9P1HPap4Je6na/o2cnUxctLkrd9tr5bnRyaRfDMNvS8/uOZS/8AdVkjUnHyZW4Lyssc1JRyfeSZPG1JOj5OY1L9cpbcbYcuNJWkZHGjsTxqa2sx5MXantTG0Xrthtpk4Sbmore3Q5xXzFil6rNDJ2qXbJSp+NMlzZItETEPt2brmi6L02GfU5e3HCChGK5m0lskfPOr+l2r61rO6U3jwRf6vEntH/L9553qPVNV1PVPPq8nc+IxW0YLyS8EZIykpWcPH9Px4pm897S8zhen0wz15O9v9PXYNesiSk+C+Shnj7SUkzyePUyjwdDT9QlFqmdfjs9foiY7PWdP69r+l9sLeo0629VkfC9z8PyO31HN0/0v6RPTYZ+r1cV3Qx5FU4yX5r4HjsGuxZa7qTfJfLDCdThKpLeMounH4HNk4lLW95Xtb7vMz+nVm3Xj+GzyOfT5NPlnjyRcZRbTT8GU0ek1+ky6nI82SXrMjXtSfMve/f8A4OTk0iSqmmdUb13enji01jq8sL24Ei2eGUbfJW01yEzEi/eSUvZK/ERKvUvUlXPgben9R1HTtRHLp8rjJO68H8V4nNTpUSUqItWJjUptq9emz7P6JelGTreLJjy4owy4knKUXtL5eB3upazLp+nZsunxRyZYwbjF+P8Ak+M9B9I5dC0+slig56jNGMcd/Zjzbf8AgnovSvqum1GTL+kPKsku6ePJvFvzXl8jxs3pc2yzanaPs+cy+l3tlmccdlmfWT1WeWTNPunJ25FbSaae5l1mrw6jVyzYISxxn7UoPiMvGvcRx5k9rPWrHTWIiH0mGIikREaW5NPGS2f1MOXSNNrY3RyJ7cllKcd1sS1n+7gZMDi2qr3lEotHezYY1dWjFm00WvZLRZlbDFu8OYnsDZdkwuC42Ke00iYlzWravaRY02t0LgVEqbmFiyNeJow6qWN7Nox1Qkys1iV65bVehwdVTioZYqcfGx5NFptXG8Eu2VW4s4MZteJox6mUHs2VmNOiuStvKWfRZMMmpIzNNbM7OHqKnHszJTj/ALhZtBhzpy08km+ISf5MdSLY/s41BZpzaXJhk1KLTXg0ZnHctEsrVmqIV5Me4tyWcjdBYV5gAKbXiWLK14lVCXI0iL2ht03Ucml1EM0X7WOSkj6ljmsmOGSPEoqS+DPkD+zI+q9Ll3dJ0bfPqYfkj2/SLTu1XyHtTSJrS/17t6JJkESPeh8Ul4DXBFEkyyUrfbwNMj4DIQkhkV4EvEJMmmVrklyTCFidS3JxftRK4rxJx2khI+YZ/wDrOT8TBcEs6f6Tk2/eZFbbHLDYUOEJTbpcCL9LJrI1XKJnstCeDC1OL5d8Hc7pQx2tqRgg1Dta5+BKeovZv+hSdylXq89xp7tnMk9+DVqZd1NMxt72ydKSPAHwyNsTtkwDxJrjkgTXBIB1QATAEADJHqvRXN+rlFyrsnS+e59Q1GBdW9EtZpWrcsUkk/Otv6nx30ezPHrJRT5Sf/z6n2L0czd+nljbW8eDzc0dOWXXjneN8W0vdk6Jq8L+1hyRypeX7r/NHP8ANeHid/LpVo/SjqXTmmo5ZZccV8faj/Y4LT8bR1x3jTCs9Nolz+3twON745OL+BGM6baZdli1nzKvZyRUt/Pj+yMi538D5XPToyWh+v8Ap2eM3Gpf7w3Y8ylzyXShGa2qzmqas04MyT3Zi7UMunSbTjRiyYGm6R3PYyQvlFGTSxfHyQVmsS4jg1yiDR0M2FxtOO5klBrlE7Y2xqlOiyOVrdPcg4vyIrZ7onW2fVarbj1Ek1u9jqaXqEoL7XyfiefUt7RfDM0udium1ckWjUvV4tXDLs9n5Esumx5o2krfiecw6uUZJo62l6jFJJtBbp+tVGo0UoXs2c/JhaVOOx6ZZceZc8mbNo4zTcefIjSYt9LPMvE0/cPJp82NJyxTinxceToZ9M4Spqn8DvejHV3p8sen6zGs+lyyqKlHueOT8vd7it7zSvVEbcvKm9Mc3xxvTidK6LLXdL1+qkpJ4ofqffJbv+n5nHcqimfap9OxafTyxQwY8UJX7MeNzw/V/QzSabE9RDqMMCf7ufaLfuZycf1DHlvMT/h43E9U672i/bfh41T2JxnRDIlDJKKnGaTpSjw/eiHdR6Gnt1yNUZ+8sjOmtzJGZYpFZhtW8S2xyOluXQzO9mzBGaS3aL4zW26+pExpptu9b3JWQklLyKYz3rb6lncQmFeTDatL4ow5NNy1S9x07shJbV+6TEotWLeXFlja8CPGx08uGM1778DHPB27ovFnLfDMT2ZxFjjS4IUSwmB4DvyItjRKNpxyOPiaMWrlj4dryZkBPcrNYaVy2q7uLW480VDLHvj5PlfBkcmgxZk3glfufP8AzORHJ2vY049XKLTun5lZiXTXJW0alCeBwk15OiqUGnVHVx5sepVZEu5cNc/8yGXTNJNK1f2kyImScdZ8OVTVkXdmyWLn2SueGt6ZeLML4bRDP4CJuNCosymCn9mXwPqnTFXS9IvLDD8kfKp/Yl8D6v09JdO0v/6Yfkj2fSPms+S9qJ+Cn+WxEktrIImuD34fEykqH7xJDosBPfhjuxccCTfkNIWLgfvIx3ZIJGzRJXZFElySLYXXBOKbkQg9n8CyLW1lZNPnGfFL9IybbdzM7i3Kkjp59ViWXIvHuZi9dGUuKOZqhjx26exrwYIuVbJvxZRLKlsqZD9IlFqkRqZW7Ou8MUlFSjsjHmkoSe6+Rn/SZvaymcpNiKzEomTnOypvwGJrcshEGAEAoknsJcC8CRO/egsgNWTAlySIpEiRr6bleLXYndJvtb+J9b9FtR25YLdprc+OY5dk4yXKaZ9K9GtYozhv769zOLlV7xLpwT205Hp/gfTfTXHrIL2ckYZdvNOmeT6hhWDqOoxR4WRtbVs91+Z9E/1U0frNFoNdFJpS9W7/ANyv+x4PqrWSWl1UVtmwRv8AFH2WXw23EM8kas42qXbkw5Gm13dr+D/50YprtySXhbOhrI3pMjju4ruXy3MWX22priSs8X1PH05t/d+hezOf3nF6f0yp96Gm0Rewm6PMfUbaseeUUop7WbMeoUnTrc5SlXiWwl9l27Bt0pRhkXC+Jky4GnsrsnizNKKe787LlOMk14kSnblZMTT4pGecGmdfLjbV0ZMmFt8CJVtSLQwNMO6i+eFrwaKHFovEuW1ZqccjRfDOk0zIhp+8TCK5Zq6+DWOPDo6uDXKWzd/E8xGdVvuasWocXvuivh0xeLx3emlDHqYrzXGxd0iOm6Z1Fa3UttYl3Y4xj3d0vA4ODXOLjT8Dq4dZDNGp1vyZ5KRkrNZZZcXVSaT4l34+nrya2MdRo449I1Tkvakn974e4876b4oS6vDU4Z9+DPiU4NSuPk6/oPNpIzX6umuaObqseZYY4pOTxwbcYv8AdvmjLFxceG/VjjTjx+nY8eSL4/8ALiyiQaNeTE72RQ4NPg6ol12xqlsSU9xuJFolnqarFIsjL2kZ02WXsg0rdrjO/EthlcXyzFCVeJbGbTsppvWzasia8bByXkzPGXiTuw0hN0yqcE1wiabW41OL5BLHPA0rS2M04NM66jGa2e6KcmC+VYidMbY4tDldoUasmBq2k6KJRaNInbltjmqsEFBwSyPwGmICFlkZuL2ZtwaucH9q14p+JzhqbRE121pl6fLtp48ytbSfgUODi6aMeLM0+TZjz96qdSXmuUUmNOut4tHZmzYk90qM8oOPJ1vUxmri215GfJp2lurJ6tM74ot4cyS9mS9x9X6e0+naVr+FD8kfMJ46tNH0jo2T1vRdHJfwkvpse16RaOuYfE+1WKYx0n+7pIkm/IhHkmj6KHw0pp7D3fiRXxJFkCgXIWMkBMgSXASaJLYjY00BOLaLIuypNNEoupDSJl83zteuyfif5lTlsSzt/pGT8b/MrORsdjcrfJEGTsTT35J3tyU2OwJtkQTCwEABQDXAiS4I0ALdk0iKRJEwJcDXAhrgsGex9GtQ3HE78K+Z407/AKO51Gfa3TUvE5uVXdNtMM/E+j+l2n/4h6D6hx3niisqfw3/AMnyqbWfoOOSe+DNW/lJf5R9k0SWu6DnwPdSxuLryo+OaPHJY+oaOX2owbrxuD/xZlxp7TDTNG5c9qMk1LhqmcmC/wCjRjz2tx+h1km9kznTj26jURqrkpL5o4/VqbpW32fTeyefWW+L7woe9+yQa24LX4kaPB2+/iFVNMlGW/ISTsj9mW4SvUt+S2E0qbM6aJRe7C0N0ZqXvFKMZPgojItU01yRMCrLhbSqkZZYdnujo0mvMpyQ8kETDmSxtIpaaR0J43bVO0Z5Y3vsWiXPkxb8KFLxJqdeJFxojTot5Y7tVohlqttzZh1W6bbs5abT3LIzaexWataZfu9Fp9Y0lb2NjlDURq9/eeYx6iUfgb8GrpqV8FW24nvDVqdHVuqOdlw1dI7OPW48y7Z0Qz6SM4twC8f3cCUPcVSVHRyadwvZmSa81SESyvVmfNh4lkolbVF9sJjSSluSUveVXuhpkTCa3aYT95ohJGFOi2EyJhvS7d3JxK3tu+COOabpljUWqIbb3CHf2vYthnTpSM8lU/ciFiVdt79XlW3JjzaR3Yo5O00Y9R4Omn5gmIntLmTxOLpora+Z2pQxZY1VMwZ9K4N0rRaLfdzZMOu8MaYeI3GnwIu5tT9QFAuQAFsyyOSvHch4g0RMLVtMeG3DqnF7s6WPPjyxqaXxOApUaMeVqlZSaurHl32l0NTp6tpez4M9R6K6lZOlywN+1gm1Xue6/ueUw6px5do7HRdfi0mtl3PtxZlU3XDXD/8Anmd3p+aMWaJnw8f2g4c8riWinmO72Ua8CavyKYNUpKSa5TTuy1S2s+tid+H5XasxOpT3CxXYfmWhVJckiFsaJEgsTYWSGnbJla5RZfgJDXJKP2iHiSi/aCsvm2f9vk/G/wAytE8/7fJ+J/mQS2ORuYcgAAuRiXIwAACiQ0tiQJUgbAArexX5DTAKGgAmA0NCoZYP5nR6Nk7NY0+Gr+jOaX6OfZq8b33dOveUyV6qTCazq0PsnovqFOMsV7SjtZ876ngXTfTvU4ntCeW3tVqSp/mz1votnccuN92+yOL/AKkaZ4OvabWRTXrcVP8AFF/4Z5+GdWmHVkj4dvF5cbw6jJikqcJuNfBmDWQa1OOW1Ti4/Tc7fVor9PlkVduaMcqa96OP1CH6hT+5JP8AsW5tevBLt9Dze651J+/Zhk6m7QrjQpqp7+JE+Xfq1ZiY2lsRlGhWJyfbySTJxJp/mU3v9omnXiSRK6MtiUWyqMmTXBC69TpElNSVeJnUiSlvzRCE5R8SjJBvhovU7VWDrkhEw52SDT3KnGjfPGpWzNOFPgmJZWptmkthXXBa42QlGi8S5rUmO4jItjNopXIdwmE1vp0cWbh27R0dPq+3xtWcCM68S/Hl7Wt9isw6a5Is9FNY9QttnRzc+mabVCwavtVJrg3wzQ1GOpNJkNIcSeFp+FFEoI7Go01LbdHPyY9h3hS1Ilja3FwXPG+aZU4l4lz2pMEm7JqaRCg4GlYmYXxnvZojO1wZI7L4lkZuPBGnRW06aXG1ZVODT2ZZjnaq7Bx7kVaa3DK20Ecngyc4U9ymUaexMMp3Vqx53F87GhZIzW5zVZZGbXiRML1yb8tObTKVuJgyY3F7o3Y8zonKEcqaf1ETpF8cWjs5PiMuz4HilRSuTVxTWazqQAAQAmm01uQJJBMLYzfmaYZLSVmK3VFmOVrngr4b1tE9pez9G+qd81oMj3abxNvy5j/f6npU6dPk+ZafUT0+bHmxySyY5KUX70fRdLqcer02PPivsyRv4PxXy4Po/SuT1093ae8Pz/2m9P8Ac5vf0j4bf7au5vgFJ2Qt/wCR3uexD5WVib4JboinaQ/ElCQxJodlgfMadEfeOwJd3tEosgOL9olEvnWf9vk/E/zK/Ann/bZPxP8AMgjjhsYUFe5jLAqgCn5BVDQa5JEVsSXA0ATfgMK9wECaQUvIYAMQANDEvEZIBxbjJNOmnyAAe89G9S4yxvuq6lR1v9RtO9R6P6XVpJvFlVvxqSr/AAeT9H8/b6pbUnR7/rGnXUfQ3WYr9r1TlG34x3X5Hl/LkdvzUfLNWvXdN0OZPeKlhl8na/oznZ4KeGcKTcotJPz8Do6V+s6PrMXjilDMkvL7L/NGF8rwO2a9VZqww3nHki8fSXEcu/FjbW7XJHjZlva4euxNV6vI0vhyilpnyWSvTaYfsHGyRkxxaPqT4E6rkb2RF8lW+idXyOwIvkgWKS8SxSt13GfxJRluExZpqkJ35BGdqrJ1aI0srTae+xYppoi1ZGu10NIWWvMhJX4WCaHYglmnDd7UVSiaZq3sVSiSztXsztEXH3sucSDRbbmtRBWicZEWgJ8qx8K6M6NmDUdtWc3uLITrkrpvTK72HUxmkmtxZsCmnKKRy8WZxlb8Tfh1W9NJorLeJ2yzxduzszTgqdI684Rmu6CvzRky4avZoRJaNw5rT8URo0ThXmVNMvtzWppDuJKRFr3AqXIUiZiVylTTWxpjNN1Zki6ZZGW5WXRS0tMkpKmZ8mNpl0ZpqrHJWr5ohpau2JqhWaMkE1aTKGmmWiWFq6SjNpVdFsMzXLM3xJJqxMFLzDb3QnBJq7MmfB2O19llkJoujJNU90+SsTMNLVreHNaoEX6jH2O1vFlC5NIcdo6Z0YWAAF7k4umQY/IJjtK+Mqex3Oidb/4dLsyty0837SX7r80cFOx33RoviyWx3i1VeVgx8jFOPJG4l9Vjuk/BjS3KtJJy0WBvdvHG38kXeJ9njt1ViX5BnrFMk1j6SnEkiKaH3e80Y7SCtxIfzJTsWNCGSbNbjjyIcftJeYRt86zr9fk/E/zIosz/APWMn4n+ZWcsNz8RpciqyaqiwKChgAhgAAAAAAAAAxDAa8QBeIAMaEMDrdGy9uRw9rZp7H1Tokoajp0sUkpRcWu3lUfIenTUNSrl234/1Pp3orqIyUY93svxPO5FdX26sM7rp8+02neDrer0E04+sjlwV796/JHJjJ3UkrXJ6X0txS6d6Y5M6dJyhmT/AD/I4fUcUMHUc+OCSj3txS8nuvzOvHO+7C0alxNZFQ1k6VLJFS+a2f8AYzNG3qMXeDJWyk4v5/8A0YpbNnzfPp057f3fp/s/njLwqb8x2VsiyVCZxPcRExvkj4hWRwOyPiAVWJ0y7Hk3p8GZWWJheJa+1NWVyhVkcc62fBoXtR4Gl41LO9hqWxOWPfYg4u6Ag274INE6aIPbkKTCDRW0Wsg92SytCtrci0WtIjRLOaq63BOickRaolnMalNSL8M6pGTdWTjJoiYaUyal1sGoqW90aWo5la5OPCd1ubMOVppplJdUTvvB5sL3pUY542r8zqykskE63MuXF3JtLcbTNYtDnyRBqi+cGnuVOO5aJc1qzskyafgV8EkwVldF2vgXRdxozJlkHvRVvWVso3HYokqatF8ZEMkU3sITaNss1W5BbMvlHYpa3Lw5b11KadFsJ068DOmWRZEwtSzQ0pRcWrRinHtlRqjMhlipJvxFV81ItG4ZwAEWcooklfIh0ExBolF7kUC5ELT4e/8ARfXy1eglhnvLA1G34xfH+DvVFnhfRDWLD1SWCXGeFL4rdf3PdV5/0PqfT8vXhjf0fmPr3F9xzLajtPdLtXmJL3ioaPQ28XR+I/mIAaMafua+JEE9y0I0n4kordEEOL32JVfPs/7bJ+J/mQRPP+2n+J/mRS2OaI7OlJDEuBkgAAAAEMAAAAAACQDAABDEMBj8hcDIFuBqOaDfHcrPfejOftyxirXteJ89TPXdAz9uSG++z3OPlV8S6ME/Rv8A9SdP+v0erUUu6Msbl5vlf3PJdRXrIaTUtq8uFJ+dx9l/2Pofppp/0z0WjlcblilGfwXD/M+eTXrOiwfbbwZu214KS8fmhhn4YRkj4nJ10XLQ5K/dqX0dnNkva23Oy0skXBvaS7XfvOHGX6tJ8x9l/FbHmeq01atn2nspm3jvj+07FA0C8w5PHfZwg0Qa3LmiDQRZW7QrJNNoi1sGcmmNPchaSBSBFl0ZFsJtWrMykWwe5K8S1RyJk2k1wmZlItU/zIaRInj4pFMsbe9mpNOnZGcbYTMMUo0QapmjJFq9iprYM7VVPig4Q3yRbJYyH8BUOxt2SrpW0FEqCgr0iDpl8JmeqJKVESvS2nRx5qVWXKanGnyzDBpuLsui9ysw6KyWSCcnyZskKZtbspyRd8eAgtG2NxpCWxZKJW7UizntXUpJli23K0SRC9Vid+JK6iV8BYXE5bFTVk20RasnbO3dW40OI5Ji4RLLWpWJ14liaZQmWRZDWs77KMiqTQR4J5FbvzIIs55jVjQ6BIluQvEIgDtCtko20aPO9NrcGeLp45qV/M+rRkpJSTtNWj5FTt7n1DpWoWo6Vpcq/exRv6Ue36Rfvar432qxfDTJ+8N3yC/ISYz3YfFAfzExpokD2QvHYLQcloQaXvJR2kRRKK9olWXgc/7fJ+J/mRXBLMv10/xP8yK4OeHQYAAAAASE+BoTCwGAAAIV7jBIINbjEhggAMCEga5IjTpgSR3ejZ2pR3VrY4OzOl0vJ2Tfjun/AGMORXdNtcM6s+oyguo+jefTveU8Ukr86PluhTnpddpndyxd6Xvi7/Kz6d6PZll0rhKmnGq8z59l066b6U5cE7UI5pR/8sv+TObBPmGmaNd3ESRxtTBY9XniuO7uXwe/+TvTg4ZZ42qcZNNfA5PUYqGtxyapZMdX70/+Zl6nTqw7+z3PZrN0czo/VDDbvcd2Qdxk0+UCbPnn6PWeydWDiJO/EkiFkHEraL6ItWFenbO0CpIslGiuSJZWroKRNOyp7MkpBFbNKkTT3+ZQn4+4sjL/ACQ3rLRF1yTtNFClvGx9zj4hpvabSdozZIVVGhMjNXu/AK2hja3E1TLpJfUrkSxtVBj8B8gFdF4ifBIiyUTCJJBV+BLtI2RVNbdvwLoy35KUiaIbVXJ+0TaTW6szqRNZNiFtq8kK44KWjS5JlU1EK2rtUkuSSBJId+RKsRoNuiN+YNuiHcNK2sl3CcmxX7wJ0pMgRJK+RqC8whFPckh0kyUcOWb9jFOS/wBsWy0VmfEInJWnzSrktiHBdlxZMUnHJCUJLepKmVNjpmO0q9dbd4lJJeY9vMeLDPNNRw455JeUVZuj0Hqk1a0eRL30jSuG9vljbG/Lw4+17RH+XPb35I37zpv0c6p4aWT+aK5dA6spNfoOV14qmW/D5Y/LLL8fx5/PH8ufZ9E9F5uXo/pnyl3R+jZ4WfS+oQ3noNQl/wDrbPZeh7nHo0sWSEoyhlltJU9z0PTa2rm7w8D2iy48vE3W0TqXoVyP5kE/AlZ9E+CP5j3IjRMJNJ2Srb3kV8SV+9EoC2Jxasr+aGvtBDweb9vk/E/zIFmb9vk/E/zIGDcAICQwEnuMkJ8CG+BeIDGICAwACUGuSSIrkkEgAAgIBgAI16B9upXvTRkRbikozi26porkjdZhNZ1aJfR/RnUtTgvB7ujg+nOnen6+tRG6ywUk/fHb/Bq9Hc6hmi7ve/kbf9QtOp6LRaqKbanTae1Nf8jz8Xw3deTvV4vqUe3XynbkssY5E342jj9Vinp8eVrfHNb+57f4Ozqv1mh0ebd1GWJv4O1/RnL1+P1mhzx/2t/Tf+xvyKdeG0NPTss4uVjvH3hxsj9pt8kEyc2ppSXDVkKo+Ul+tVncAkpeZBiT3ITtfGS4JNRZQnsWRmF4lFqyMo2XPeiEojaswolHYgti9xK5Iljav1CfgWplCTJoLUsvjLYl3FSeyJXaIaxZapDcriUqaQ3NUFpsUqsqfJJu29hV7gznuQiXyCr4JRKNWOiSi34ElB+RBEIpElGHvLFhlXBbDTZZ7RxSfwRatLW8Qi2THjjd5iP3ZWqI3R0l0nWZOcaj+JpDXQdVJb5MS+bf9jorw89vFZcGX1bhY/OSHMUiSlsdJej+orfUYl8mWx9G8r/71BfCLL/0/kfpc0+vcGP+xyYy94nv4naj6N5F/wB5j/Iya9HN13anb3Q/5kx6dyJ/Krb2h4ER8/8AtwHQnzVnqsPQdHj3mpZX/ue30RtxaPT4v2eDHH4RR04/SMk/NOnnZ/avj1/46zb/AMeJWLLP7GHJL4RbLI9N1+T7OjzP/wAtHu1sqW3wJI6q+k0jzaXl5fa3JM/DSHiY9C6jL/uzT97SNGP0b1867vVQXjc/8Hru0klXBpHpWGPrLmt7VcqfFYh57B6LJL9dqb90I/5N+H0f0GFpuEsj85y/sdTgEzpx8DBTxVwZvXebl831+3ZTi0WlwU8enxRfmoo0rbZbfAQLk6a46V8Q8+/Jy3+a0yo1XT9Jrqep08MkkqUnyvmUY/R/pcZdy0kH7pNtHQXNErorbBjtO5rG1q83PSvTW8xH7o4sGLBBRxYoY4rwjFL8iy/cJO3uS2o0isR2hjbJa07mTTvhDtqvEinY92Sp1SmpVRJu7b/Mq45GNE2lLxJJkUF0SqkNc0QsadsQsmqrkPkICyE0/MlGnIrROK3QHhcv7fJ+J/mVlmX9tk/E/wAyBg2AmhgSAAABMKGIAGAeAAAqJJbACW5IQwAAAAAAAaGlb9wkNPegPS9Ez9uSElsnR7D0jxrW+iOZczxxU4/Lc8F0mbqKfhKj6PoK1XScmF7qUHH+h5tvhyOyvej5hgfrelaqCVvFKOVe5cP+xkqMk4tWmqN2gxvHrdTo5Vc4zxV796/qkc5Nrnk7Y7xMOekzWYn7PPqPbjcHzCTi/kwk+C/VwcNZqI06k1NfNf5szVbPks1em81frvCy+9wVvH1iEWBKiLRk6QnTJJkRhMLU7QypOh9w0nZyUfMg0Nu9yPzCsk40CRLxCt+SUdkvZp1Yr24YqZJY8s/sYpte6LLVpa3iGd89KfNMQipO+R9z8yyOg1kntpsnxaotj0rWSe+NR+Mkaxxss+Ky5repcavnJH8s3gPfwN8OjalveeOPzbNGPocf+0zN/hVGteByLflcuT1/g4/z7/ZyEndLd+SJ48U8ku2MXJ+SR38XStJjr9X3Pzk7NcMUIKoxUV7lR2U9ItPz208nP7WYo7YqTP79nEw9N1EtpY+xecnRux9Jxxac5uTXglSN6VEkd2H03DTzG/3eHyvabmZe1J6Y/srx6XDjpxxx+LVlriNDO6mKtfljTxMvLy5Z3ktMopEqAklua6hzzaUe0nF0MAjcnY72IpNMkho2kmMVjsnSDJIjZJEaRoyRFDBoxojYdwFiAimSAYIQ0tyRLcabSoQ7CNpJ7Bb8yNgEJjIL3slYSn4CbI2/APiEnfvHZEFYhKadslbsrXI7ZYTT+pKMqZWr8iSA8Vm/b5PxP8yBPP8At8n4n+ZXZg1MBWOyQAAAAAABQUDGSFW4wr3DABgBAAAAABDRIaBcgCCHQ6fNxm0nXDPovo9mcsLg3do+aaSXbmi147HufRzUOOaMG0lfJ53Irq+3XhnddPNdag+nelWeSTSWVZF8Hv8A5ObrMSw67PjXCm6+HKPS+nmmWPqen1KTay43F/Ff8mef6gu+WnzrjLhi/mtn+R0Yp7QxtGrPP9Si46nHOr7oOL+T/wCZgafdZ1OrRa00Mq37Miv4Pb/BzZqmfPeo06c8z936T7O54ycOsT5r2QYmhgcWnuzaIKoiLsenzZVcMcq83sv6mmHSs00nKUYX8zenGzX+Wrhz+pcXD/yXiGBuTC1FWzrQ6Pjpesyzb9yo1Q6dpIKvVKf4nZ109LzW+bs8jP7T8THHwbtLz6qTpe0/Jbs04tBqMtOOCSXnPY78McMaShCMV7lRLc68fpNY+eXk5va3JP8AxUiP3crF0ZyS9dlp+Kgv7mvF03TYv3O5+c3ZqRJHdj4WHH4q8Tket8zPPxX1+3ZCOKEOIxXwRYrXi/qMGdUUiPDzbZr2+aUkrTsFFRGuAtE6U6pAAMaV2EOxJhYDGuBDXBaBJDSEhkhqrGiKe/BJMISALC7JBZJMiCYE7HZBEkEJIktkQTJrgCQABABgk/IK9wAuSZB7DTdASsmvMr3HbJQssZWpP3Ek/MI0lwFiAJ0aZIiiSewD4CwABisOQEJBJNMiNMsJIlGr95BMaa7gPF5v2s/xP8ypukW5v2s/xP8AMrq0YQ1R7nXgTi7RHtQ0iwkAAADEMABeIUCQDGIYACQIaAAGJgJiQ6BIBXuSXiHbuSWwE8Uuyal5M9X0bUduVLxbTs8md3pWapQa34OTk17bbYJ76em9NcS1HRMGoSd4sib+D2Z4rJ+s6Vib3eHK4fKStf1s+idQxrW+jOfDVt4nVefJ880NZtJq8Nb+rWRL3xf+LK8efhTljVnM1eJ59LkxLZyjs35mbN0XNgzLHmyQvtjJ+r9pbq9n8zo9t+KNGqTnptJkdfs3jb83F/4aJzcbHltE3jbp4nqfJ4tZrhtrbkx6dpoveLm/9zNEMWOG0ccY/CJbVhsaY+Pip8tYVzeo8rN895lFR34JMSY6NtOGbzPk0MXA0NKbAwBlgIaEgsCQ0RsaAkAgoCS3GxLkb4AVjXAUADGiKGTAmn70P5kFySssH3e8a+JBckyA9x88kbGiRMBIYVCJLgiNcASRJMiPhATTJpWVJk1KvECyqB8EVK+WNhJMOAaCtwgxoQ0A0TRBBdAWDIp7jsBhuIYDTd0DbFY794DVskrIodgMA+IFkSa4Q48kRxftIDxmX9tP8T/MgTy/tp/if5kTCGxAAN7khgJPcYAMQwGhiAkMAAgA0IFuSJAIYCBACAmtgAZCAdHpmVRktuGc01aKbWVJGOeu6L4p1Z9L6TkWbQuMrarde4+e4IfonXZYZKk8ksbT8pbf3PaejmdNRhf+1o8v6V4v0b0gyZYpxU0pr4rb+xyce3eYdGaO0S4sk8eSWOVKUW4te9GmL7+lzTb7seVSS90lT/qkQ6nGMOo5JL7ORLIv/Mk/zsn09qbz4HzlwyS+K9pfkdkz225vEstvnwIvkadpClybIEeSRGPJMKyBiGEGDFY1uAIAAJBJESSAaGhIkgg1yAL4DAAEMA4AQ7JDQxIZKDS3JIitvAkEgYgskTQ0RT3JIKyY1wJEgEhtWgAAXBJEUNN0BNMmtyksi/MCdARvy3HYSYcBYBB2AtgCU0SILgktwhJACABgg4BMCSqgsjsHIQkmSKySLCQR+1EiyUPtoIeMzP8AXT/E/wAyNks/7bJ+J/mVW6MG6dkXyK3aGSGuSRFcjAYxAAx8iBASAAAAQAgGAh+AACECAsTfkFkFwNcgTsu0z7c0WUKiUZdsk/eVtG6zCInU7e16BmUMqT87K/TnTr1mmzpPe4v8zF0nN2ZY14nf9K8X6R6PetS3x1P6HmY/hyO6/ejxGs/XaTR5v9jxv4xf+CvRZI4NdgyS+zGacvh4luNLJ0jNHmWLLGa+D2f9jJVno1jtpx28paiDw6nLif7s2v67FRs6goyz48y4y44z+fD/AKoyPll6zuECPJNEI8liLKyAACEAEALxJDAACQSIrkkA0SXJEEEJjI38R3aABgACDaxggGhiTCyRLexr3kRokS8RPkYmSGuSS5IIYVlZfkNS2IIlYEt/MZBck0EheIxAEGSXBBc7klzQE1wMjY09gJfMPmIYB8xoQ1VASRMgiS3CUkAgCDD5isAGHHwEtwd2IQlY0ytck0WEiUPtr4kCcPtr4geMz/tp/if5lVWizP8Atp/if5la4MIbCh0BKiQJDAQDARJccAFAkMAGAAAAhDRIaAEACYIGCAfgCDwBASXKG+RLkkuSJVdjps6lB35HuZQWt6JPFdpwcWvkfPdBOnVbpnvuiZ/WaXtdJuP5Hm5I6bu6nerwGgV5NRp3zkxSil71uvyMiao6WqitB6ST2qMM9v4N/wCGYtTi9RrM2LaozaXw8P6HZS23LeNLczWTp+nmk7xyljb+PtL+5jfLs24e2eg1WNrdduRP4On+Zi8DSn2RIjyWIrjyWIupIAACAADQByFAMJJImkJcMa4AHsCdD8ACCvcakKhpASW4xLgYAAAADXIkMkMaYkBIla8xXYB4Ehoa4Eh71wESdkkQRJcBCSJJkfAE3YEwsihgNPexpkVySQEiVkfePxAkuEMW3mO0ADSFyySaQSaRIjdj28whIGR7gctwHYLcQASBvcVsQgNckkRXJIsGSit0RRKL9pAeNzr9dP8AE/zK0ti7N+2n+J/mQS2MGoQDoKJALkdAAJeZKhIYAMAJAAAADQgsCQhWFgAAAANCGgJIkuSCZJAatJNRzU97Pa9AzqNJrl0eFwusq9+x6vouVxyR+Piefyo1bbqwT8OmP0w03qerwyVSyQ/J/wD0cvqUu/UY89JLNijL5rZ/ken9NMPfotNqK3jLf5//ABHls1ZOmYJpe1iySg/g91/c2wzusMsvzH05p6yOOX2cqeN/NGJqm15Mtx5PU5IZfuSUvoyzX41j1+ZR2i5dy+D3X5m8dpZ/Rmj9omRSpki6kmABQQSJC4GAAABKUeRiQwGAAECiSQh8AMBWgsBgKxgAAADQxLZBZYMkRRIkC5GhIaCJDGIdhCSGRtc2CaYSkhrjkSGEJLkkiK2HYEhisfID+YCGglJeYCABoPmAANEiCGEJAgXgC5Akl7xD2ChCQuSRFLckWQaJR+1EgOP2kwPJ51+un+J/mVrgsz/tsn4n+ZWjBqYCGSAKBbsYCJCGSAAAgAAAAAAAhgAAAwJCH7gAAWzJoguSW9bATi6aZ6HpmZwnB3apHnE3W51un5FcHfDOTlV3XbbBPfT2PWsf6b6O59k5RVr5b/2PEaZPJo9ZjTVqMciXwe/9Ge/0soajp2SGzTjueB00Xg6pPC6Sk5Ynfv2Kcee2k5o77YnVPdGrXPvx6XPd9+JRk/fHb8qML7oycWqadNG5P1vSJN84cq+klX5pHXbzEsI8SyJkrIRJl1DEAAMYg4AYAFhITJWRACdhe9ESSqwJLkbohY0/cEJUIa+AfIBLkYfIAGAIaWxKRQUOvcBKASENccEgXIxfJjAAACADQiSok0aGCGEGhvgSGBJcDEuBhAGmIYEkw5EhgHgAAAxrZWJDAkC5AE6YE/ITFYm9yYE09wsiMkNElyRRJAeTz/t8n4n+ZWuCzP8Atsn4n+ZWYNQMQEhrkYlyMAY1wAAAAAAAAEgAAIAAADGIYAKhhySEluS8BoADwN3T3tJVutzCjVopdudLlPkxzV3SV8c6s930HKpYu1vlUeR69Cek9IMklS7pLImvA9B0XL2TUU/eYPTTAo6rT50q7k4v81+bOTBOrab5Y3Xbh9Th2dSzUqjJqar3q/8AIaKLyY9XhvfJgk18Y+0vyZLXReTT6TU2m5YuyT98X/hor0OX1OtwybqPdUvg9jsnvVyx5Zou0mST96JZcbw5smKV3CTjb8aIrj5mkTtWe0nfvH8xVuMlBgAANAIa4AAAAkIknTIgEJhwRXJJgSXAyKJIBjEMJAxIZIBgIlAGuBDXiSHQw8AIACEwiSJUNDQwBD8RDAfgNMXgNBCSGJDCDAAQDXAAADGJDAAEDAkm18B2Rv3sLsCdoEJEkTAYABIaJLkSHHkDyeb9tP8AE/zK6LM37fJ+J/mVswagAAkPgEwGgAYAAAAAAAASAAAgBQBwSAYgW4DBPcAXIE0AkMARdhkoZIyfgypBdFbRuNEdper6VlUM8HXJu9LcKy9Gjlr2sck793BxOnZU5Y3fkeq1cFrOiZsfLeNpfQ82s9N3baN0eEUlPo8ot3LFlUkvdJU/6pGNcpvzNehTyQ1GFpNzxSr4rdfkZIptWeg4pauoru1SyrjLCM1+T/IzLY1Z+6eh02SvsyljbXya/NmbbyFfCtvJ8jEMugAAEgGuBDXAAAAEgAABrdkq2IrkkEGiSIoaYEgEMCSGRTQ7AACwLAHFbANcAMAABPgEDBEiaZIr3Jr3gMYhgMfAkPxAa4HYuBhB+A0IAhJAIYBwOwCgAYAAhrkBpbASQ6EgbEBjIpkiwaJRruoinSscWnOwPKZ0vX5PxP8AMrpUW50vX5PxMrSRg1KgokBYKiQAAAAAAAAAAAAAAAAAADQAMBBwAAEXuTILkn4AMT4ABodPp86jH3M9x0nIsmlkqPA6CVSkq8mez6JldKO1HmZq6yS7Mc7o8g1+hddcb9mGZr3U3/hmbNi9TqMmJu+yTj/U6fpNp3p+rynVLIrT862/wY+pNS1SzRfs5sccnza3/qmdtLdURLlvGtljqfT9TC94OORfWn+ZkSZr6c+7U+pfGWMsb+a2/rRkVpu2XjzMKT42luAWFF1TAAABrgK8wAAAAAACmA1tTJJtsQwkVuSS2EuSSYQLsYtgAYAFgP5jIrkkWASXBEkmqAYAACYIHwCJElzyTILkkAxoQ0tgGMVDoARIjwNNBBgtxAmEJEiF7k1wAwFYwGuAEFgPkkuCI1wBL5hQBYhIS3GILsshLwHH7RElH7USB5fN+2yfif5lZZm/bZPxP8yBi1AABIAAAAAGSEAAQAAAkAAMBAOh0AhgIAABgJbMn4CGgBIKGAF2kl250rpNUes6NlcckUn40eQxy7Zxl5M9H0+ahlTbpNnDyY+LbowT20v9MsCawZ/GMnF/Nf8AI8/n/WdN0+Rf9nKWN/8A9L+56/0hwLU9AnkSbljqa+TPJYGsnTNVif2oOOVfLZ/0ZfDPwqZY+JmwZPU54ZVdwkpbe5lmvxrHr88V9nvbXwe6/MoukatZTx6XN3W8mJKXxi6/Kjo/MyjwyoYAXUMa8xAAwFYAMAAJFElHYRNAKvcFe4e4twgEiK95IB0MSe4yQgBgSGNNMiSXIDGhDAl4AJN+QwEwXAwJDXJJEEySAkSXBElHgBgAEAABhAfAkMZKANAAQa5GJcjAYAASPAaYhgOxoiNcCBIFQgT8ywkSivai9yF+QRb7ktyNDzWb9vk/E/zIE86/X5PxP8yBi1AABIAAABcjEAAAAgABglbJCGOgpgIYUwpgIKsH5AuAHRJbCWwwAEA0ADEMAVna0M7jCTe7Ss4p0dFP9XH3No5uVHwxLXBPxae0SWo6ZPF4Sj2uzxHTVWulppr9rGWN/Gv8o9r0mSnhadtdp43qMP0H0gySiqUcqnH4Pcxwz5hplj6ue002nynTNkk8nSYtu5YstV5KS/yiOvxrHrs0Y/Zcu6Pwe5LSVLDqsbVuWLui/fF3+VnX9NufX0ZaHwK7GaQzC8wDgAD4D38xAA/mAkMGwTXBAaCUg8AQwgkMBpbANIYhgJ8AgaBLYtsC5JIEhgAwAiUSd0wtsQ0TCTABEhrgkiC4JrgCRJPYiPgCQAgIQAB7IAGMihhCQCQyQ0NCXIwGCAEAwAAAa4ESXBMIAABIEOP24kbJR+0viB5vP+3yfiZWW54t6jJUX9p+HvK+2X3ZfQwbEA+yX3X9A7Zfdf0JSQD7Zfdf0Dsl92X0JQQD7Jfcl9A7Jfdl9CAgQ+yX3ZfQahL7svoSESW6E4S+7L6Ekn21RAADtl5B2S8mSjYAajL7rDtl91/QEK5K2CJ9svuy+gKMvuv6BICg7ZX9l/QfbL7svoAqAl2S+7L6B2yfgwEMO2S/df0Cpfdl9ASDXoZU5py222MnbL7svoXaZSjmW0kZZo3SYWxzq23sOj5knFb0cn0swRhr8WWPMo0/k/8ADRq6Tk7MiVbMt9K8PfocWZJtxmr+D2/wcOKdWdd+9Xn9b2zx6XPTvJiqTfnF1/gr0M1HWY+5bN9r+D2/uWSTn0qKSt4szXykv8oyQUotNJ3Z31+XTitPfYlBwySg3vFtfQKNWuxy/S5ZFFuORKaaW26M1Svh/QtE9lZ8iveDQVL7svoHbL7svoWCAfbL7svoHZL7svoEEhjUJfdl9A7Jfdl9AENB2S+7L6ElCVfZl9ACwQdkvuy+gdsvuv6BBjT2F2y+7L6ElCX3ZfQJgx1t7wUJVfbL6Eu2X3ZfQJQ+I0lXIOMvuy+g1GVfZl9CQDFUvJ/QdS8n9CUAA7ZeT+g1GX3ZfQiSSGuQ7Zfdl9BqMk/sv6CCAA6l91/QO2X3X9CQkiS2DtlX2ZfQahL7svoA7sYuyX3ZfQfbL7r+g2GO0Ltl92X0Dtl92X0JQYUCjL7svoS7ZV9mX0IEUMfbL7svoFS+6/oEGhgoyr7MvoPtl92X0AEgH2y+7L6D7Zfdf0JEQuiXbL7r+gu2X3X9AAYdsvuv6DUXXEgEFj7X5MO1+T+gCsHY+13w/oNxk/3X9CYkRW5OP24goSr7L+g1GSkn2v6CZH//2Q==";
/**
* base64 编码转换为 BufferedImage
* 正经的base64编码是不包含:data:image/jpeg;base64,的。可以通过getBase64Str截取
* @return 图片字节数组
*/
public static byte[] base64ToByteArr(String base64) {
return DatatypeConverter.parseBase64Binary(base64);
}
/**
* base64字符串,如果带base64的类型,就去除类型,否则返回原字符
*/
public static String getBase64Str(String base64) {
String r = base64;
if (StringUtils.isNotBlank(base64)) {
// 判断是否带类型的base64字符串
if (base64.contains(";base64,")) {
r = base64.split(";base64,")[1];
}
}
return r;
}
2、生成一个图片到单元格
// XSSFClientAnchor的x1、y1、x2、y2,单位要比HSSFClientAnchor的单位大的多,如果像素设置小了,会看不到图片的
private static void writeCell(XSSFWorkbook workbook, XSSFCell cell, String imageUrl, XSSFDrawing patriarch) throws IOException {
// 单元格为标,以左上为起点,向右移
int x1 = 20 * 1000;
// 单元格为标,以左上为起点,向下移
int y1 = 20 * 1000;
// 单元格为标,以右上为起点,向左移
int x2 = 1000 * 1000;
// 单元格为标,以右下为起点,向上移
int y2 = 1000 * 1000;
// 后面四个参数表示图片左上角和右下角的坐标
// col1 图片的左上角放在第几个列cell
// row1 图片的左上角放在第几个行cell
// col2 图片的右下角放在第几个列cell
// row2 图片的右下角放在第几个行cell
int column = cell.getColumnIndex();
int row = cell.getRowIndex();
// XSSFClientAnchor|HSSFClientAnchor|...
XSSFClientAnchor anchor = new XSSFClientAnchor(x1, y1, x2, y2, (short) column, row, (short) column, row);
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
// anchor.setAnchorType(ClientAnchor.AnchorType.byId(3));
// 数据
cell.setCellStyle(getCommentStyle(workbook));
int pictureIndex = workbook.addPicture(new FileInputStream(imageUrl), XSSFWorkbook.PICTURE_TYPE_JPEG);
patriarch.createPicture(anchor, pictureIndex);
// patriarch.createPicture(anchor, pictureIndex).resize(0.8); // resize,按比例调整图像大小
}
3、生成Excel,示例一些不同数据流写入图片的方式
注意一下代码内注释
package com.dongzi.utils.excel;
import cn.hutool.http.HttpUtil;
import cn.hutool.poi.excel.cell.CellUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.xssf.usermodel.*;
import sun.misc.BASE64Decoder;
import javax.imageio.ImageIO;
import javax.xml.bind.DatatypeConverter;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Base64;
/**
* excel导出图片
*/
public class ExcelImagesUtils {
static String imageUrl = "https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0923%2F5d579023j00rinl4x000tc000hs00hsm.jpg&thumbnail=660x2147483647&quality=80&type=jpg";
// 图片转的base64
static String base64 = "data:image/jpeg;base64,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";
public static void main(String[] args) throws IOException {
exportImages();
}
// 导出excel
public static void exportImages() throws IOException {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("单元格图片");
// =============
// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
XSSFDrawing patriarch = sheet.createDrawingPatriarch();
XSSFRow row = sheet.createRow(0);
row.setHeight(((short) (80 * 20)));
// 第一列
XSSFCell cell1 = row.createCell(0);
sheet.setColumnWidth(0, 16 * 256);
// 通过FileInputStream,把图片写入单元格
writeCell(workbook, cell1, "D:\\temp\\模板\\9.jpg", patriarch);
// 第二列
XSSFCell cell2 = row.createCell(1);
sheet.setColumnWidth(1, 16 * 256);
// 获取本地图片,写入单元格
writeCell(workbook, cell2, getImageByte("D:\\temp\\模板\\10.jpg", true), patriarch);
// 第三列
XSSFCell cell3 = row.createCell(2);
sheet.setColumnWidth(2, 16 * 256);
// 获取远程图片链接,写入单元格
writeCell(workbook, cell3, getImageByte(imageUrl, false), patriarch);
// 第四列
XSSFCell cell4 = row.createCell(3);
sheet.setColumnWidth(3, 16 * 256);
// 通过把base64转成byte数组,写入单元格
writeCellBase64(workbook, cell4, getBase64Str(base64), patriarch);
// 第五列
XSSFCell cell5 = row.createCell(4);
sheet.setColumnWidth(4, 16 * 256);
// 通过图片url获取到file文件,转成base64,再转成byte数组,写入单元格
// 唉~ 我过去了...我又过来了...
writeCellBase64(workbook, cell5, fileToBase64(imageUrl), patriarch);
// ================
FileOutputStream outputStream = new FileOutputStream("D:\\temp\\Excel带图片导出.xlsx");
workbook.write(outputStream);
outputStream.flush();
workbook.close();
outputStream.close();
}
private static byte[] getImageByte(String imageUrl, boolean isLocal) throws IOException {
ByteArrayOutputStream byteArrayOut = null; //字符输出对象
BufferedImage bufferedImage = null;
byte[] byteArray = null;
if (isLocal) {
// 从本地文件读图片流
bufferedImage = ImageIO.read(new FileInputStream(imageUrl));
} else {
// 从远程读图片流:hutool
byteArray = HttpUtil.downloadBytes(imageUrl);
}
// BufferedImage转ByteArrayOutputStream字节流
if (bufferedImage != null) {
byteArrayOut = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "jpg", byteArrayOut);
byteArrayOut.flush();
byteArray = byteArrayOut.toByteArray();
byteArrayOut.close();
}
return byteArray;
}
// 直接写入值
private static void writeCell(XSSFWorkbook workbook, XSSFCell cell, Object value) {
// CellUtil: hutool
CellUtil.setCellValue(cell, value, getCommentStyle(workbook));
}
// 本地图片写入
private static void writeCell(XSSFWorkbook workbook, XSSFCell cell, String imageUrl, XSSFDrawing patriarch) throws IOException {
// XSSFClientAnchor的x1、y1、x2、y2,单位要比HSSFClientAnchor的单位大的多,如果像素设置小了,会看不到图片的
// 单元格为标,以左上为起点,向右移
int x1 = 20 * 1000;
// 单元格为标,以左上为起点,向下移
int y1 = 20 * 1000;
// 单元格为标,以右上为起点,向左移
int x2 = 1000 * 1000;
// 单元格为标,以右下为起点,向上移
int y2 = 1000 * 1000;
// 后面四个参数表示图片左上角和右下角的坐标
// col1 图片的左上角放在第几个列cell
// row1 图片的左上角放在第几个行cell
// col2 图片的右下角放在第几个列cell
// row2 图片的右下角放在第几个行cell
int column = cell.getColumnIndex();
int row = cell.getRowIndex();
// XSSFClientAnchor|HSSFClientAnchor|...
XSSFClientAnchor anchor = new XSSFClientAnchor(x1, y1, x2, y2, (short) column, row, (short) column, row);
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
// anchor.setAnchorType(ClientAnchor.AnchorType.byId(3));
// 数据
cell.setCellStyle(getCommentStyle(workbook));
int pictureIndex = workbook.addPicture(new FileInputStream(imageUrl), XSSFWorkbook.PICTURE_TYPE_JPEG);
patriarch.createPicture(anchor, pictureIndex);
// patriarch.createPicture(anchor, pictureIndex).resize(0.8); // resize,按比例调整图像大小
}
// byte[] 写入
private static void writeCell(XSSFWorkbook workbook, XSSFCell cell, byte[] byteArr, XSSFDrawing patriarch) throws IOException {
int x1 = 20 * 1000, y1 = 20 * 1000, x2 = 1000 * 1000, y2 = 1000 * 1000;
int column = cell.getColumnIndex();
int row = cell.getRowIndex();
XSSFClientAnchor anchor = new XSSFClientAnchor(x1, y1, x2, y2, (short) column, row, (short) column, row);
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
//
int pictureIndex = workbook.addPicture(byteArr, XSSFWorkbook.PICTURE_TYPE_JPEG);
cell.setCellStyle(getCommentStyle(workbook));
patriarch.createPicture(anchor, pictureIndex);
// patriarch.createPicture(anchor, pictureIndex).resize(0.8); // resize,按比例调整图像大小
}
// base64转byte[] 后写入
private static void writeCellBase64(XSSFWorkbook workbook, XSSFCell cell, String base64, XSSFDrawing patriarch) throws IOException {
int x1 = 20 * 1000, y1 = 20 * 1000, x2 = 1000 * 1000, y2 = 1000 * 1000;
int column = cell.getColumnIndex();
int row = cell.getRowIndex();
XSSFClientAnchor anchor = new XSSFClientAnchor(x1, y1, x2, y2, (short) column, row, (short) column, row);
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE);
//
int pictureIndex = workbook.addPicture(base64ToByteArr(base64), XSSFWorkbook.PICTURE_TYPE_JPEG);
cell.setCellStyle(getCommentStyle(workbook));
patriarch.createPicture(anchor, pictureIndex);
// patriarch.createPicture(anchor, pictureIndex).resize(0.8); // resize,按比例调整图像大小
}
// ============================================================>>>
// 几种文件,相互转化的方式
/**
* base64 string(不包含类型等信息)
*/
private static String fileToBase64(String imageUrl) {
byte[] bytes = HttpUtil.downloadBytes(imageUrl);
return Base64.getEncoder().encodeToString(bytes);
}
/**
* base64 转 file
*/
private static File base64ToFile(String base64, String filePath) {
File file = null;
try {
BASE64Decoder base64Decoder = new BASE64Decoder();
byte[] bytes = base64Decoder.decodeBuffer(base64);
file = new File(filePath);
FileOutputStream out = new FileOutputStream(file);
out.write(bytes);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
private static byte[] fileToByte(String imageUrl) {
return HttpUtil.downloadBytes(imageUrl);
}
private static File byteToFile(byte[] bytes, String filePath) {
File file = null;
try {
file = new File(filePath);
FileOutputStream out = new FileOutputStream(file);
out.write(bytes);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
/**
* base64 编码转换为 BufferedImage
*
* @return 图片字节数组
*/
public static byte[] base64ToByteArr(String base64) {
return DatatypeConverter.parseBase64Binary(base64);
}
/**
* base64 编码转换为 BufferedImage
*/
public static BufferedImage base64ToBufferedImage(String base64) {
try {
byte[] bytes = DatatypeConverter.parseBase64Binary(base64);
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
return ImageIO.read(in);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* base64字符串,如果带base64的类型,就去除类型,否则返回原字符
*/
public static String getBase64Str(String base64) {
String r = base64;
if (StringUtils.isNotBlank(base64)) {
// 判断是否带类型的base64字符串
if (base64.contains(";base64,")) {
r = base64.split(";base64,")[1];
}
}
return r;
}
private static CellStyle getCommentStyle(XSSFWorkbook workbook) {
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setWrapText(true);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setAlignment(HorizontalAlignment.CENTER);
return cellStyle;
}
}
4、Excel下载结果
附-关于单元格内图片大小像素设置问题
不同的Anchor对象,如:XSSFClientAnchor、HSSFClientAnchor两个的参数代表的像素大小是不同的,像素如果设置过下,这可能会导致在对应的单元格看不到图片,原因就是太小了,如果出现这种情况,考虑增大参数值尝试。
因为没有在源码里面找到关于dx1,dy1…参数大小设置的注释介绍,这里就不贴截图了。