- 浏览: 275262 次
文章分类
最新评论
-
羽风之扬:
crazydayu 写道您好,我在启动的时候也遇到了这种错误, ...
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio -
羽风之扬:
我的也[是这用错误,改过后没效果。这是我的截图,麻烦帮我看下吧 ...
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio -
hamizhong:
...
Linux和Python脚本自动部署应用一例(2) -
crazydayu:
您好,我在启动的时候也遇到了这种错误,但是加上127.0.0. ...
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio -
lg327969713:
wx_hello 写道你好,请教下,这个链接要配置ODBC数据 ...
Java连接FoxPro6.0数据库(测试)
工作需要研究POI技术导出Excel格式,目前实验版本支持Excel 2003,其他版本有待验证确认。记录工作需要,其实整体来说了解POI开源技术,学习apache(http://poi.apache.org/)提供的源码和官方文档之后,感觉难度不大,主要内容包括常规的导出(比如:单元格合并、数据迭代、单元格图片操作、字体颜色、单元格背景、单元格格式、单元格条件格式、单元格函数控制等),权当工作记录,以资后用。参考源码如下:
package com.poi;
/**
* @author zhaoxiaobo
* @email zxbxiaobo@sina.com
* @createdTime:2011-9-11
* JDK: 1.6.0_19
* POI: 3.8 (20120326)
* JavaBean basic data object class
*/
public class MeterReadings {
private String carNo;
private Long departureKm;
private Long currentReadings;
private Long arrivalKm;
private Long actualKm;
private byte[] picture;
public MeterReadings(String carNo, Long departureKm, Long currentReadings, Long rrivalKm,
Long actualKm, byte[] picture) {
this.carNo = carNo;
this.departureKm = departureKm;
this.currentReadings = currentReadings;
this.arrivalKm = actualKm;
this.actualKm = actualKm;
this.picture = picture;
}
public String getCarNo() {
return carNo;
}
public void setCarNo(String carNo) {
this.carNo = carNo;
}
public Long getDepartureKm() {
return departureKm;
}
public void setDepartureKm(Long departureKm) {
this.departureKm = departureKm;
}
public Long getCurrentReadings() {
return currentReadings;
}
public void setCurrentReadings(Long currentReadings) {
this.currentReadings = currentReadings;
}
public void setArrivalKm(Long arrivalKm) {
this.arrivalKm = arrivalKm;
}
public Long getArrivalKm() {
return arrivalKm;
}
public void setActualKm(Long actualKm) {
this.actualKm = actualKm;
}
public Long getActualKm() {
return actualKm;
}
public void setPicture(byte[] picture) {
this.picture = picture;
}
public byte[] getPicture() {
return picture;
}
}
package com.poi;
/**
* @author zhaoxiaobo
* @email zxbxiaobo@sina.com
* @createdTime:2011-9-11
* JDK: 1.6.0_19
* POI: 3.8 (20120326)
*
* Generate excel data class
*/
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
import org.apache.poi.hssf.usermodel.HSSFComment;
import org.apache.poi.hssf.usermodel.HSSFConditionalFormattingRule;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFPatriarch;
import org.apache.poi.hssf.usermodel.HSSFPatternFormatting;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFSheetConditionalFormatting;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.FontFormatting;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
public class ExportExcelTest<T> {
/**
* This is generic method, using Java reflection (invoke) mechanism ,can be placed some Java Collections data
* and certain conditions of the data symbols in the form of Excel output to the specified IO device.
* refer to the official website
* @param sheetName sheet name
* @param headers output table header name array
* @param dataset Javabean data collections (get set method)
* @param out output object stream(specify output path)
* @param dateFormat datetime format dd/MM/yyyy (d/MM/yyyy HH:mm:ss)
*
*/
public void exportExcel(String sheetName, String[] headers, Collection<T> dataset, OutputStream out, String dateFormat) {
// declare a workbook
HSSFWorkbook workbook = new HSSFWorkbook();
// create one sheet
HSSFSheet sheet = workbook.createSheet(sheetName);
//Fixed cell width : 15 character
sheet.setDefaultColumnWidth(15);
//specify width
sheet.setColumnWidth(2, 5400);
sheet.createFreezePane(0, 3);
// create one style
HSSFCellStyle style = workbook.createCellStyle();
// setup style
style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// create one font
HSSFFont font = workbook.createFont();
font.setColor(HSSFColor.VIOLET.index);
font.setFontHeightInPoints((short) 12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// the font is applied to the current style
style.setFont(font);
// create another style
HSSFCellStyle style2 = workbook.createCellStyle();
style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
//define cell width
HSSFCellStyle styleWidth = workbook.createCellStyle();
//styleWidth.set
styleWidth.setFillForegroundColor(HSSFColor.BLUE_GREY.index);
// create another font
HSSFFont font2 = workbook.createFont();
font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
font2.setFontHeight((short) 250);
// System.out.println(font2.getFontHeight());
// System.out.println(font2.getFontHeightInPoints());
// the font is applied to the current style
style2.setFont(font2);
// declare one top manager for painting
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
// define one comment content
HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short) 4, 2, (short) 6, 5));
// setup comment content author , invalidate
comment.setAuthor("Zxb Dennis");
// setup comment content
comment.setString(new HSSFRichTextString("Insert into comment for pic!"));
//comment.setAuthor(author)
comment.setVisible(false);
comment.setFillColor(255, 155, 255);
comment.setLineStyle(1);
HSSFCellStyle styleDate = workbook.createCellStyle();
styleDate.setAlignment(CellStyle.ALIGN_RIGHT);
HSSFFont fontDate = workbook.createFont();
fontDate.setColor(HSSFColor.BLACK.index);
fontDate.setFontHeightInPoints((short) 12);
fontDate.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
styleDate.setFont(fontDate);
HSSFRow row0 = sheet.createRow(0);
row0.setHeightInPoints(20);
HSSFCell cell0 = row0.createCell(0);
HSSFCell cell1 = row0.createCell(1);
cell0.setCellValue("Date:");
cell0.setCellStyle(styleDate);
//cell0.setCellStyle(styleMerge);
//Date date = (Date) value;
SimpleDateFormat sdf0 = new SimpleDateFormat(dateFormat);
String dateValue = sdf0.format(new Date());
cell1.setCellValue(dateValue);
//merge column
HSSFRow row1 = sheet.createRow(1);
row1.setHeightInPoints(12);
sheet.addMergedRegion(CellRangeAddress.valueOf("$A$2:$I$2"));
//create new row
HSSFRow row = sheet.createRow(2);
row.setHeightInPoints(15);
//table header column
for (int i = 0, len = headers.length; i < len; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
cell.setCellComment(comment);
}
//iterator data , generate data
Iterator<T> it = dataset.iterator();
HSSFSheetConditionalFormatting formating = sheet.getSheetConditionalFormatting();
int index = 2;
while (it.hasNext()) {
index++;
row = sheet.createRow(index);
T t = (T) it.next();
//Java reflection technology Javabean
Field[] fields = t.getClass().getDeclaredFields();
for (int i = 0, len = fields.length; i < len; i++) {
HSSFCell cell = row.createCell(i);
cell.setCellStyle(style2);
Field field = fields[i];
String fieldName = field.getName();
String getMethodName = "get"
+ fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);
try {
Class tCls = t.getClass();
Method getMethod = tCls.getMethod(getMethodName, new Class[] { });
Object value = getMethod.invoke(t, new Object[] { });
//cast data type
String textValue = null;
if (value instanceof Integer) {
int intValue = (Integer) value;
cell.setCellValue(intValue);
} else if (value instanceof Float) {
float fValue = (Float) value;
textValue = new HSSFRichTextString(String.valueOf(fValue)).toString();
cell.setCellValue(textValue);
} else if (value instanceof Double) {
double dValue = (Double) value;
textValue = new HSSFRichTextString(String.valueOf(dValue)).toString();
cell.setCellValue(textValue);
} else if (value instanceof Long) {
long longValue = (Long) value;
cell.setCellValue(longValue);
}
if (value instanceof Boolean) {
boolean bValue = (Boolean) value;
textValue = "是";
if (!bValue) {
textValue = "否";
}
} else if (value instanceof Date) {
Date date = (Date) value;
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
textValue = sdf.format(date);
} else if (value instanceof byte[]) {
// setup row height
row.setHeightInPoints(25);
//
sheet.setColumnWidth(i, (short) (35.7 * 80));
// sheet.autoSizeColumn(i);
byte[] bsValue = (byte[]) value;
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0,
1023, 255, (short) 5, index, (short) 5, index);
anchor.setAnchorType(2);
patriarch.createPicture(anchor, workbook.addPicture(
bsValue, HSSFWorkbook.PICTURE_TYPE_JPEG));
} else {
//toString
textValue = value.toString();
}
//validate data type
if (textValue != null) {
//Pattern p = Pattern.compile("^//d+(//.//d+)?$");
Pattern p = Pattern.compile("^\\d+$");
Matcher matcher = p.matcher(textValue);
if (matcher.matches()) {
//cell.getCellStyle();
if (!"carNo".equals(fieldName)) {
setCellStyle(workbook, cell);
}
if ("arrivalKm".equals(fieldName)) {
cell.setCellFormula("(LEFTB(B" + (index + 1)+",3)) * 10000 + C" + (index + 1));
//digit data type
cell.setCellValue(Double.parseDouble(textValue));
} else if ("actualKm".equals(fieldName)) {
String conditionFormat = "D" + (index + 1) + "-" + "B" + (index + 1);
cell.setCellFormula(conditionFormat);
//cell.setCellValue(richString);
//HSSFConditionalFormattingRule rule1 = sheet.createConditionalFormattingRule("$A$1<96");
conditionFormat = "OR(E" + (index + 1) + " < 0,E" + (index + 1) + " > 500)";
//System.out.println("=== " + conditionFormat);
CellRangeAddress[] range = {
new CellRangeAddress(index, index ,4 ,4)
};
//cell.setCellComment(comment);
//cell.setCellStyle(styleWidth);
addConditionFormat(formating, range, conditionFormat, cell, workbook);
} else {
//digit
cell.setCellValue(Double.parseDouble(textValue));
}
} else {
HSSFRichTextString richString = new HSSFRichTextString(textValue);
HSSFFont font3 = workbook.createFont();
font3.setColor(HSSFColor.BLUE.index);
richString.applyFont(font3);
if ("arrivalKm".equals(fieldName)) {
cell.setCellFormula("(LEFTB(B" + (index + 0)+",3)) * 10000 + C" + (index + 0));
cell.setCellValue(richString);
//HSSFConditionalFormattingRule rule1 = formating.createConditionalFormattingRule("$A$1<96");
} else {
cell.setCellValue(richString);
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}
try {
writeSummary(sheet, workbook);
workbook.write(out);
} catch (IOException e) {
e.printStackTrace();
}
}
private void addConditionFormat(HSSFSheetConditionalFormatting formating, CellRangeAddress[] range,
String formatRule, HSSFCell cell, HSSFWorkbook workbook) {
try{
HSSFConditionalFormattingRule rule1 = formating.createConditionalFormattingRule(formatRule);
HSSFConditionalFormattingRule[] rule = {rule1};
//cellstyle background color setup
HSSFPatternFormatting patternFmt1 = rule1.createPatternFormatting();
patternFmt1.setFillBackgroundColor(HSSFColor.ROYAL_BLUE.index);
//cellstyle font color setup
FontFormatting font = rule1.createFontFormatting();
font.setFontStyle(false, true);
font.setFontColorIndex(IndexedColors.RED.index);
//patternFmt1.setFillPattern(fp);
formating.addConditionalFormatting(range, rule);
}catch(Exception ex) {
ex.printStackTrace();
}
}
private void writeSummary(final HSSFSheet sheet, final HSSFWorkbook wb) {
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(CellStyle.ALIGN_RIGHT);
HSSFFont font = wb.createFont();
font.setColor(HSSFColor.BLACK.index);
font.setFontHeightInPoints((short) 12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style.setFont(font);
//another
HSSFCellStyle style2 = wb.createCellStyle();
style2.setAlignment(CellStyle.ALIGN_CENTER);
HSSFFont font2 = wb.createFont();
font2.setColor(HSSFColor.GREEN.index);
font2.setFontHeightInPoints((short) 12);
font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
style2.setFont(font2);
HSSFRow row1 = sheet.getRow(3);
HSSFCell cell = row1.createCell(7);
HSSFCell cell_ = row1.createCell(8);
cell.setCellValue("Max:");
cell_.setCellFormula("MAX(E4:E200)");
cell.setCellStyle(style);
cell_.setCellStyle(style2);
HSSFRow row2 = sheet.getRow(4);
HSSFCell cel2 = row2.createCell(7);
HSSFCell cel2_ = row2.createCell(8);
cel2.setCellValue("Mix:");
cel2_.setCellFormula("MIN(E4:E200)");
cel2.setCellStyle(style);
cel2_.setCellStyle(style2);
HSSFRow row3 = sheet.getRow(5);
HSSFCell cel3 = row3.createCell(7);
HSSFCell cel3_ = row3.createCell(8);
cel3.setCellValue("Average:");
cel3_.setCellFormula("AVERAGE(E4:E200)");
cel3.setCellStyle(style);
cel3_.setCellStyle(style2);
//specify width
sheet.setColumnWidth(6, 1500);
sheet.setColumnWidth(7, 3000);
sheet.setColumnWidth(8, 2500);
}
private void setCellStyle(final HSSFWorkbook wb, final HSSFCell cell) {
HSSFCellStyle styleThousands = wb.createCellStyle();
styleThousands.cloneStyleFrom(cell.getCellStyle());
styleThousands.setAlignment(CellStyle.ALIGN_CENTER);
//styleThousands.setDataFormat(workbook.createDataFormat().getFormat("_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)"));
//styleThousands.setDataFormat(wb.createDataFormat().getFormat("#,##0.00"));
styleThousands.setDataFormat(wb.createDataFormat().getFormat("#,##0"));
cell.setCellStyle(styleThousands);
}
public static void main(String[] args) {
// Meter readings
ExportExcelTest<MeterReadings> readings = new ExportExcelTest<MeterReadings>();
String[] headers = {"Car Number", "Depart Km", "Current Readings", "Arrival Km", "Actual Km" ,"Picture"};
List<MeterReadings> dataset = new ArrayList<MeterReadings>();
//basic data
try {
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream("C:\\TEMP\\default\\xz.jpg"));
byte[] buf = new byte[bis.available()];
while ((bis.read(buf)) != -1) {
}
dataset.add(new MeterReadings("1001", 2115827l, 6063l, 2116063l, 236l,buf));
dataset.add(new MeterReadings("1002", 2040982l, 1301l, 2041301l, 319l,buf));
dataset.add(new MeterReadings("1003", 2072589l, 2782l, 2072782l, 193l,buf));
dataset.add(new MeterReadings("1004", 1910111l, 0303l, 1910303l, 192l,buf));
dataset.add(new MeterReadings("1005", 2005604l, 5875l, 2005875l, 271l,buf));
dataset.add(new MeterReadings("1006", 2086034l, 6270l, 2086270l, 236l,buf));
dataset.add(new MeterReadings("1007", 1986280l, 6600l, 1986600l, 320l,buf));
dataset.add(new MeterReadings("1008", 2037798l, 8131l, 2038131l, 333l,buf));
dataset.add(new MeterReadings("1009", 2122344l, 2565l, 2122565l, 221l,buf));
dataset.add(new MeterReadings("1010", 2081331l, 1400l, 2081400l, 69l,buf));
OutputStream out = new FileOutputStream("D:\\tmp\\b\\MeterReadings.xls");
//readings.exportExcel("Car km data", headers, dataset, out, "dd/MM/yyyy HH:mm:ss");
readings.exportExcel("Car km data", headers, dataset, out, "dd/MM/yyyy");
out.close();
JOptionPane.showMessageDialog(null, "Export successfully!!!");
} catch (Exception e) {
System.out.println("Exception:you should close file(MeterReadings.xls)!!!\n");
e.printStackTrace();
}
}
}
最后效果图:
发表评论
-
java多线程共享对象切换标志
2018-01-06 16:29 470直接上题: 要求创建三个线程,输出 ... -
编译时和运行时顺序输出笔记记录
2017-12-28 14:12 443package com.dennis.test.init; ... -
Java记事本二
2017-12-28 13:45 496//下面代码为两组分类示例 private sta ... -
mongodb在Java环境下简单使用
2015-09-16 18:42 1296mongodb在Java环境下简单使用,简单记录,简单增删查 ... -
Tomcat7+Nginx1.8+Redis2.6负载均衡简单配置
2015-09-06 16:13 1301为了缓解因为Web服务器的session所 ... -
Java简易cglib代码实现方式(AOP)
2015-05-25 17:12 980CGLIB(Code Generation Library) ... -
linux tomcat日志错误Cannot run without an instance id & java.net.UnknownHostExceptio
2015-03-14 17:51 4990linux环境下面出现这种问题(而windows下面可 ... -
quartz集群分布式(并发)部署解决方案-Spring
2015-03-14 17:37 5266项目中使用分布式并发部署定时任务,多台跨JVM,按照常理逻 ... -
redis基本命令、配置参数 - 简单示例(sub/pub)
2014-10-11 18:12 2589(一) redis命令集功能分析 转(htt ... -
计算机原码、反码、补码、位移码
2014-09-16 11:03 776计算机原码、反码、补 ... -
内螺旋数组java实现
2014-09-15 23:14 821最初学习C语言时,看到国外程序员的内螺旋实现,都懵了,感觉 ... -
排列组合
2013-10-17 20:58 0package org.dennis; import ... -
排列组合基本算法
2013-09-03 10:33 0import java.util.ArrayList; i ... -
动态反射代理实现机制两例代码比较(二)
2013-03-29 14:52 1045动态反射代理实现机制两例代码比较,最近研究设计 ... -
动态反射代理实现机制两例代码比较(一)
2013-03-29 14:31 963动态反射代理实现机制两例代码比较,最近研究设计 ... -
解决一例Was8.0异常java.lang.reflect.InvocationTargetException
2013-03-21 19:08 5429... -
Java拼音转换一例
2012-11-27 18:40 1037工作中有时碰到将中文名转换成首字母拼音书写。以前工 ... -
Java工作记事本
2012-11-20 11:00 1198工作始终会遇到很多需要收集的资料,时间长了,难免 ... -
学习Jnotify文件监视
2012-10-09 15:28 2425学习Jnotify文件监视用例 研究文件监视(Win ... -
找出随机抽查数字
2012-08-16 16:50 1014闲来无事,做一个简单随机查找数字小程序,闲的发慌,因为具体 ...
相关推荐
《Spring Cloud学习:基于POI实现Word模板动态生成》 在现代企业级应用开发中,数据的导出和报告生成是常见的需求。Spring Cloud作为一套微服务架构的解决方案,不仅涵盖了服务治理、负载均衡等核心功能,同时也为...
1.poi读写excel,需事先引入maven依赖实现方式:* 这个类是用来读写excel文件的,采用的是poi这个jar包实现,当前类只支持对excel200
FileOutputStream fileOut = new FileOutputStream("E:/temp/study/xssf-align.xlsx"); wb.write(fileOut); fileOut.close(); ``` 这段代码将工作簿对象 `wb` 写入到指定路径下的 Excel 文件中。完成后,记得关闭...
这篇博客“java study”可能涉及到了使用Java处理数据,特别是通过读取淘宝Excel数据来分析或操作数据的相关技术。在Java中,处理Excel文件通常会用到Apache POI库或者其他第三方库。下面将详细探讨这个主题。 首先...
【标题】"study0903"所涉及的知识点主要集中在Excel处理和Java编程的结合上,这通常意味着如何在Java程序中读取、写入或操作Excel文件。Excel是微软开发的一款电子表格应用程序,广泛用于数据管理和分析,而Java作为...
`DocumentHelper` 和 `Element` 是来自 Apache POI 或 JDOM 库的,用于创建 XML 文档。 总的来说,这段代码展示了如何使用 AJAX、jQuery 和 JSON 进行前后端交互的基本流程。前端通过 AJAX 发送数据到服务器,...
这可能与数据处理和分析的技巧有关,如使用Java 8的Stream API或Apache POI库来处理Excel数据。\n\n7. **StackBarchart.pdf**:堆积柱状图用于展示各部分与整体的关系。JavaFX或JFreeChart库可帮助在Java中实现这种...
Java提供了如Apache POI用于读写Excel文件,以及Apache Spark或Hadoop等大数据处理框架,用于高效地处理和分析大量交易数据。 七、RESTful API设计 为了与其他系统集成,交易系统可能需要提供RESTful API接口。Java...
leetcode 分类 Introduction 本项目用于学习java各种知识 ...基于org.apache.poi 解析excel文件 数据结构和算法 完成8大排序 跳跃表的实现 (做了部分优化 代码看起来没有那么复杂) 红黑树的实现 (看了很多篇,这
dubbo 整合dubbospringboot_easyPoi 阿里poi(待完善)springboot_elasticsearch 搜索springboot_multiThreading 多线程入门springboot_netty 整合netty BIO NIOspringboot_qqLogin 第三方登录(待完善)springboot_...
3. **Apache POI + iText/PDFBox**:将Apache POI读取的Word/Excel内容,通过iText或PDFBox生成PDF文件。这个过程可能涉及到对Word/Excel内容的格式化和布局调整,因为不同的格式之间存在差异。 四、具体步骤 1. **...
IHE_PCD_Suppl_POI.pdf ijcsit2014050679.pdf IMECS2009_pp1537-1540.pdf LuksSwensonPulseOximetryatHighAltitude.pdf MI_CCHD_Screener_Tips_Flier_3-21-13_422078_7.pdf Moon.pdf notes6.pdf pansw_spo2_sensor....
IHE_PCD_Suppl_POI.pdf ijcsit2014050679.pdf IMECS2009_pp1537-1540.pdf LuksSwensonPulseOximetryatHighAltitude.pdf MI_CCHD_Screener_Tips_Flier_3-21-13_422078_7.pdf Moon.pdf notes6.pdf pansw_spo2_sensor....
同时,还可以添加自定义覆盖物,如热力图、POI图层等,以满足各种可视化需求。 四、路径规划 高德地图的一大亮点是其强大的路线规划能力。API提供了驾车、公交、步行等多种出行方式的路径规划服务。通过设置起点和...
public boolean onMapPoiClick(MapPoi poi) { return false; } }); ``` 以上就是Android应用中集成百度地图SDK,实现自动定位和点击定位的基本步骤。在实际开发中,还可以根据需求添加更多功能,如添加自定义...