- 浏览: 2699 次
- 性别:
- 来自: 北京
最新评论
直接上代码:
poi版本大于3.8
public class ExcelUtil {
//声明一个模板工作薄(写入流式数据)
private Workbook writeDataWorkBook;
//样式列表
private Map<String, CellStyle> cellStyleMap;
//Excel当前数据行数(将要写入数据的索引数)
private int currentRowNum = 0;
//数据输出流
private OutputStream outputStream;
/**
* 释放资源
*/
public void dispose() {
try {
if (writeDataWorkBook != null) {
writeDataWorkBook.write(outputStream);
}
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
if (cellStyleMap != null) {
cellStyleMap.clear();
}
cellStyleMap = null;
outputStream = null;
writeDataWorkBook = null;
} catch (IOException e) {
}
}
/**
* 导出字符串数据
*
* @param file 文件名
* @param columnNames 表头
* @param sheetTitle sheet页Title
*/
public void exportExcelTitle(HttpServletResponse response, String sheetName, List<String> columnNames,
String sheetTitle, List<List<Object>> objects) {
//创建xlsx格式的Excel
XSSFWorkbook wb = new XSSFWorkbook();
/**
* SXSSFWorkbook被写入的表格,可进行海量写入
* 参数:
* @wb2007版本Excel
* @100批量写入条数
*/
SXSSFWorkbook tplWorkBook = new SXSSFWorkbook(wb, 100);
Map<String, CellStyle> cellStyleMap = styleMap(tplWorkBook);
// 表头样式
CellStyle headStyle = cellStyleMap.get("head");
// 生成一个表格
Sheet sheet = tplWorkBook.getSheet(sheetName);
if (sheet == null) {
sheet = tplWorkBook.createSheet(sheetName);
}
// 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, 0, columnNames.size() - 1));
// 产生表格标题行
Row rowMerged = sheet.createRow(currentRowNum);
Cell mergedCell = rowMerged.createCell(0);
mergedCell.setCellStyle(headStyle);
mergedCell.setCellValue(new XSSFRichTextString(sheetTitle));
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
// 产生表格表头列标题行
Row row = sheet.createRow(currentRowNum);
for (int i = 0; i < columnNames.size(); i++) {
Cell cell = row.createCell(i);
cell.setCellStyle(headStyle);
RichTextString text = new XSSFRichTextString(columnNames.get(i));
cell.setCellValue(text);
}
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
//内容样式
CellStyle contentStyle = cellStyleMap.get("content");
//正文整数样式
CellStyle contentIntegerStyle = cellStyleMap.get("integer");
//正文带小数整数样式
CellStyle contentDoubleStyle = cellStyleMap.get("double");
for (List<Object> dataRow : objects) {
Row row1 = sheet.createRow(currentRowNum);
for (int j = 0; j < dataRow.size(); j++) {
Cell contentCell = row1.createCell(j);
Object dataObject = dataRow.get(j);
contentCell.setCellStyle(contentStyle);
String str = dataObject.toString();
if(str.contains("-") && str.contains(":") && str.contains(".0")){
str.trim();
str = str.substring(0, str.lastIndexOf(" "));
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}else if(this.isNum(str)){
if(str.contains(".")){
contentCell.setCellStyle(contentDoubleStyle);
contentCell.setCellValue(Double.parseDouble(str));
}else{
contentCell.setCellStyle(contentIntegerStyle);
contentCell.setCellValue(Integer.parseInt(str));
}
}else{
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}
}
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
}
for(int i = 0 ; i<columnNames.size() ; i ++){
sheet.autoSizeColumn((short)i); //调整宽度
}
try {
this.setResponseHeader(response, sheetName);
OutputStream ops = response.getOutputStream();
tplWorkBook.write(ops);
ops.flush();
ops.close();
} catch (IOException e) {
}
}
public void exportExcelCompare(HttpServletResponse response, String sheetName, List<String> columnNames,
String sheetTitle, List<List<Object>> objects,int length) {
Workbook tplWorkBook = new XSSFWorkbook();
Map<String, CellStyle> cellStyleMap = styleMap(tplWorkBook);
// 表头样式
CellStyle headStyle = cellStyleMap.get("head");
CellStyle contentStyle = cellStyleMap.get("content");
// 生成一个表格
Sheet sheet = tplWorkBook.getSheet(sheetName);
if (sheet == null) {
sheet = tplWorkBook.createSheet(sheetName);
}
// 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, 0, columnNames.size() - 1));
// 产生表格标题行
Row rowMerged = sheet.createRow(currentRowNum);
Cell mergedCell = rowMerged.createCell(0);
mergedCell.setCellStyle(headStyle);
mergedCell.setCellValue(new XSSFRichTextString(sheetTitle));
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
// 产生表格表头列标题行
Row row = sheet.createRow(currentRowNum);
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, 0,length));
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, length+1,length*2+1));
Cell headerCell = row.createCell(0);
headerCell.setCellStyle(contentStyle);
headerCell.setCellValue("民航局");
Cell headerCells = row.createCell(8);
headerCells.setCellStyle(contentStyle);
headerCells.setCellValue("空管局");
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
//正文整数样式
CellStyle contentIntegerStyle = cellStyleMap.get("integer");
//正文带小数整数样式
CellStyle contentDoubleStyle = cellStyleMap.get("double");
for (List<Object> dataRow : objects) {
Row row1 = sheet.createRow(currentRowNum);
for (int j = 0; j < dataRow.size(); j++) {
Cell contentCell = row1.createCell(j);
Object dataObject = dataRow.get(j);
contentCell.setCellStyle(contentStyle);
String str = dataObject.toString();
if(str.contains("-") && str.contains(":") && str.contains(".0")){
str.trim();
str = str.substring(0, str.lastIndexOf(" "));
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}else if(this.isNum(str)){
if(str.contains(".")){
contentCell.setCellStyle(contentDoubleStyle);
contentCell.setCellValue(Double.parseDouble(str));
}else{
contentCell.setCellStyle(contentIntegerStyle);
contentCell.setCellValue(Integer.parseInt(str));
}
}else{
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}
}
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
}
for(int i = 0 ; i<columnNames.size() ; i ++){
sheet.autoSizeColumn((short)i); //调整宽度
}
try {
this.setResponseHeader(response, sheetName);
OutputStream ops = response.getOutputStream();
tplWorkBook.write(ops);
ops.flush();
ops.close();
} catch (IOException e) {
}
}
/**
* 设置响应头
* @param response
* @param fileName
*/
public void setResponseHeader(HttpServletResponse response, String fileName) {
try {
fileName = new String(fileName.getBytes(),"ISO8859-1");
response.setContentType("application/octet-stream;charset=ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName+".xlsx");
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 判断是否是数值型数据
*/
public boolean isNum(String str) {
try {
new BigDecimal(str);
if(str.contains("E")){
return false;
}
return true;
} catch (Exception e) {
return false;
}
}
/**
* 单元格样式(Integer)列表
*/
private CellStyle createCellContent4IntegerStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 正文样式
style.setFillPattern(XSSFCellStyle.NO_FILL);
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font);
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));//数据格式只显示整数
return style;
}
/**
* 单元格样式(Double)列表
*/
private CellStyle createCellContent4DoubleStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 正文样式
style.setFillPattern(XSSFCellStyle.NO_FILL);
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font);
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));//保留两位小数点
return style;
}
/**
* 创建单元格表头样式
*
* @param workbook 工作薄
*/
private CellStyle createCellHeadStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 表头样式
style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
font.setFontHeightInPoints((short) 12);
font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
return style;
}
/**
* 创建单元格正文样式
*
* @param workbook 工作薄
*/
private CellStyle createCellContentStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 正文样式
style.setFillPattern(XSSFCellStyle.NO_FILL);
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font);
return style;
}
/**
* 单元格样式列表
*/
private Map<String, CellStyle> styleMap(Workbook workbook) {
Map<String, CellStyle> styleMap = new LinkedHashMap<String, CellStyle>();
styleMap.put("head", createCellHeadStyle(workbook));
styleMap.put("content", createCellContentStyle(workbook));
styleMap.put("integer", createCellContent4IntegerStyle(workbook));
styleMap.put("double", createCellContent4DoubleStyle(workbook));
return styleMap;
}
}
poi版本大于3.8
public class ExcelUtil {
//声明一个模板工作薄(写入流式数据)
private Workbook writeDataWorkBook;
//样式列表
private Map<String, CellStyle> cellStyleMap;
//Excel当前数据行数(将要写入数据的索引数)
private int currentRowNum = 0;
//数据输出流
private OutputStream outputStream;
/**
* 释放资源
*/
public void dispose() {
try {
if (writeDataWorkBook != null) {
writeDataWorkBook.write(outputStream);
}
if (outputStream != null) {
outputStream.flush();
outputStream.close();
}
if (cellStyleMap != null) {
cellStyleMap.clear();
}
cellStyleMap = null;
outputStream = null;
writeDataWorkBook = null;
} catch (IOException e) {
}
}
/**
* 导出字符串数据
*
* @param file 文件名
* @param columnNames 表头
* @param sheetTitle sheet页Title
*/
public void exportExcelTitle(HttpServletResponse response, String sheetName, List<String> columnNames,
String sheetTitle, List<List<Object>> objects) {
//创建xlsx格式的Excel
XSSFWorkbook wb = new XSSFWorkbook();
/**
* SXSSFWorkbook被写入的表格,可进行海量写入
* 参数:
* @wb2007版本Excel
* @100批量写入条数
*/
SXSSFWorkbook tplWorkBook = new SXSSFWorkbook(wb, 100);
Map<String, CellStyle> cellStyleMap = styleMap(tplWorkBook);
// 表头样式
CellStyle headStyle = cellStyleMap.get("head");
// 生成一个表格
Sheet sheet = tplWorkBook.getSheet(sheetName);
if (sheet == null) {
sheet = tplWorkBook.createSheet(sheetName);
}
// 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, 0, columnNames.size() - 1));
// 产生表格标题行
Row rowMerged = sheet.createRow(currentRowNum);
Cell mergedCell = rowMerged.createCell(0);
mergedCell.setCellStyle(headStyle);
mergedCell.setCellValue(new XSSFRichTextString(sheetTitle));
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
// 产生表格表头列标题行
Row row = sheet.createRow(currentRowNum);
for (int i = 0; i < columnNames.size(); i++) {
Cell cell = row.createCell(i);
cell.setCellStyle(headStyle);
RichTextString text = new XSSFRichTextString(columnNames.get(i));
cell.setCellValue(text);
}
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
//内容样式
CellStyle contentStyle = cellStyleMap.get("content");
//正文整数样式
CellStyle contentIntegerStyle = cellStyleMap.get("integer");
//正文带小数整数样式
CellStyle contentDoubleStyle = cellStyleMap.get("double");
for (List<Object> dataRow : objects) {
Row row1 = sheet.createRow(currentRowNum);
for (int j = 0; j < dataRow.size(); j++) {
Cell contentCell = row1.createCell(j);
Object dataObject = dataRow.get(j);
contentCell.setCellStyle(contentStyle);
String str = dataObject.toString();
if(str.contains("-") && str.contains(":") && str.contains(".0")){
str.trim();
str = str.substring(0, str.lastIndexOf(" "));
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}else if(this.isNum(str)){
if(str.contains(".")){
contentCell.setCellStyle(contentDoubleStyle);
contentCell.setCellValue(Double.parseDouble(str));
}else{
contentCell.setCellStyle(contentIntegerStyle);
contentCell.setCellValue(Integer.parseInt(str));
}
}else{
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}
}
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
}
for(int i = 0 ; i<columnNames.size() ; i ++){
sheet.autoSizeColumn((short)i); //调整宽度
}
try {
this.setResponseHeader(response, sheetName);
OutputStream ops = response.getOutputStream();
tplWorkBook.write(ops);
ops.flush();
ops.close();
} catch (IOException e) {
}
}
public void exportExcelCompare(HttpServletResponse response, String sheetName, List<String> columnNames,
String sheetTitle, List<List<Object>> objects,int length) {
Workbook tplWorkBook = new XSSFWorkbook();
Map<String, CellStyle> cellStyleMap = styleMap(tplWorkBook);
// 表头样式
CellStyle headStyle = cellStyleMap.get("head");
CellStyle contentStyle = cellStyleMap.get("content");
// 生成一个表格
Sheet sheet = tplWorkBook.getSheet(sheetName);
if (sheet == null) {
sheet = tplWorkBook.createSheet(sheetName);
}
// 合并单元格
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, 0, columnNames.size() - 1));
// 产生表格标题行
Row rowMerged = sheet.createRow(currentRowNum);
Cell mergedCell = rowMerged.createCell(0);
mergedCell.setCellStyle(headStyle);
mergedCell.setCellValue(new XSSFRichTextString(sheetTitle));
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
// 产生表格表头列标题行
Row row = sheet.createRow(currentRowNum);
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, 0,length));
sheet.addMergedRegion(new CellRangeAddress(currentRowNum, currentRowNum, length+1,length*2+1));
Cell headerCell = row.createCell(0);
headerCell.setCellStyle(contentStyle);
headerCell.setCellValue("民航局");
Cell headerCells = row.createCell(8);
headerCells.setCellStyle(contentStyle);
headerCells.setCellValue("空管局");
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
//正文整数样式
CellStyle contentIntegerStyle = cellStyleMap.get("integer");
//正文带小数整数样式
CellStyle contentDoubleStyle = cellStyleMap.get("double");
for (List<Object> dataRow : objects) {
Row row1 = sheet.createRow(currentRowNum);
for (int j = 0; j < dataRow.size(); j++) {
Cell contentCell = row1.createCell(j);
Object dataObject = dataRow.get(j);
contentCell.setCellStyle(contentStyle);
String str = dataObject.toString();
if(str.contains("-") && str.contains(":") && str.contains(".0")){
str.trim();
str = str.substring(0, str.lastIndexOf(" "));
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}else if(this.isNum(str)){
if(str.contains(".")){
contentCell.setCellStyle(contentDoubleStyle);
contentCell.setCellValue(Double.parseDouble(str));
}else{
contentCell.setCellStyle(contentIntegerStyle);
contentCell.setCellValue(Integer.parseInt(str));
}
}else{
contentCell.setCellStyle(contentStyle);
contentCell.setCellValue(str);
}
}
//写入成功一行数据递增行数
currentRowNum = currentRowNum + 1;
}
for(int i = 0 ; i<columnNames.size() ; i ++){
sheet.autoSizeColumn((short)i); //调整宽度
}
try {
this.setResponseHeader(response, sheetName);
OutputStream ops = response.getOutputStream();
tplWorkBook.write(ops);
ops.flush();
ops.close();
} catch (IOException e) {
}
}
/**
* 设置响应头
* @param response
* @param fileName
*/
public void setResponseHeader(HttpServletResponse response, String fileName) {
try {
fileName = new String(fileName.getBytes(),"ISO8859-1");
response.setContentType("application/octet-stream;charset=ISO8859-1");
response.setHeader("Content-Disposition", "attachment;filename="+ fileName+".xlsx");
response.addHeader("Pargam", "no-cache");
response.addHeader("Cache-Control", "no-cache");
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* 判断是否是数值型数据
*/
public boolean isNum(String str) {
try {
new BigDecimal(str);
if(str.contains("E")){
return false;
}
return true;
} catch (Exception e) {
return false;
}
}
/**
* 单元格样式(Integer)列表
*/
private CellStyle createCellContent4IntegerStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 正文样式
style.setFillPattern(XSSFCellStyle.NO_FILL);
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font);
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));//数据格式只显示整数
return style;
}
/**
* 单元格样式(Double)列表
*/
private CellStyle createCellContent4DoubleStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 正文样式
style.setFillPattern(XSSFCellStyle.NO_FILL);
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font);
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));//保留两位小数点
return style;
}
/**
* 创建单元格表头样式
*
* @param workbook 工作薄
*/
private CellStyle createCellHeadStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 表头样式
style.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND);
style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
font.setFontHeightInPoints((short) 12);
font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
return style;
}
/**
* 创建单元格正文样式
*
* @param workbook 工作薄
*/
private CellStyle createCellContentStyle(Workbook workbook) {
CellStyle style = workbook.createCellStyle();
// 设置边框样式
style.setBorderBottom(XSSFCellStyle.BORDER_THIN);
style.setBorderLeft(XSSFCellStyle.BORDER_THIN);
style.setBorderRight(XSSFCellStyle.BORDER_THIN);
style.setBorderTop(XSSFCellStyle.BORDER_THIN);
//设置对齐样式
style.setAlignment(XSSFCellStyle.ALIGN_CENTER);
// 生成字体
Font font = workbook.createFont();
// 正文样式
style.setFillPattern(XSSFCellStyle.NO_FILL);
style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
font.setBoldweight(XSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font);
return style;
}
/**
* 单元格样式列表
*/
private Map<String, CellStyle> styleMap(Workbook workbook) {
Map<String, CellStyle> styleMap = new LinkedHashMap<String, CellStyle>();
styleMap.put("head", createCellHeadStyle(workbook));
styleMap.put("content", createCellContentStyle(workbook));
styleMap.put("integer", createCellContent4IntegerStyle(workbook));
styleMap.put("double", createCellContent4DoubleStyle(workbook));
return styleMap;
}
}
相关推荐
在C#编程环境中,导出Excel表格是一项常见的需求,尤其在数据处理和报告生成时。本文将详细讲解如何使用C#来实现Excel表格的导出,包括xls和xlsx两种常见格式。 首先,我们需要理解这两种格式的区别。Xls是Excel...
这个压缩包"**C#实现从数据库数据批量导出Excel.zip**"提供了三种不同的实现方式,每个文件夹代表了一种方法。下面我们将详细探讨这些方法及其背后的原理和技术。 1. **使用EPPlus库** EPPlus是C#中非常流行的用于...
Java POI库是一个广泛使用的开源项目,专门用于处理Microsoft Office格式的文件,包括Excel的.xls和.xlsx文件。在本示例中,我们关注的是如何利用Java POI来根据模板生成.xlsx格式的Excel文件。这个过程涉及到对...
导出文件的格式为.xlsx,这是Excel 2007及以后版本使用的文件格式,它支持更多的公式、图表类型和数据处理功能。与旧的.xls格式相比,.xlsx格式在存储大量数据时能更好地保持文件的大小和性能。 工具还提供了两种...
总的来说,ASP.NET中数据导入与导出Excel涉及的关键技术包括:使用OLEDB或Open XML读写Excel文件,使用DataTable作为中间数据容器,以及使用DataSet进行数据操作。了解并熟练运用这些技术,能够帮助开发者高效地处理...
安装完成后,我们可以开始编写代码来批量导出Excel。在ThinkPHP5.0中,我们通常会在控制器中处理这个逻辑。以下是一个简单的示例: ```php namespace app\controller; use PhpOffice\PhpSpreadsheet\Spreadsheet;...
"tableExport_html表格导出excel等多种格式"是一个便捷的工具,它允许用户将HTML表格的数据轻松地导出为Excel、CSV、PDF等格式。这个工具通过引入一个JavaScript库,大大简化了这个过程,使得网页开发者和非技术人员...
在IT领域,批量导出Excel和CSV文件是一项常见的任务,特别是在数据分析、数据处理或报告生成等场景中。Excel和CSV都是广泛使用的数据格式,各有其特点和用途。 Excel(.xlsx)是Microsoft Office中的电子表格应用...
Apache POI是Java库,用于读写Microsoft Office格式的文件,包括Excel(`.xls`和`.xlsx`)。在这个示例中,我们可能使用了`HSSFWorkbook`(用于`.xls`)或`XSSFWorkbook`(用于`.xlsx`)来创建和操作Excel工作簿。 ...
XlsxWriter是一个用于将数据写入Excel 2007+ XLSX文件的Python模块,它支持创建和写入XLSX文件,同时提供了一系列用于设置Excel文件格式化的功能。通过XlsxWriter,用户可以灵活地设置Excel中的单元格格式,包括字体...
6. 导出数据到Excel,用于数据分析或报告生成。 7. 进行数据排序和过滤。 尽管NativeExcel在处理.xlsx图片方面存在局限,但它的核心功能——无Office环境下的Excel操作,已经足够满足大多数业务需求。对于需要处理...
6. Excel模板:在某些场景下,layui可能结合Excel模板技术,用于批量生成报告或自定义格式的数据输出,这涉及到动态填充Excel模板的能力。 7. 数据可视化:layui可以与ECharts或其他图表库结合,将Excel中的数据...
可以考虑使用异步操作,或者利用内存中数据结构批量处理,减少与Excel的交互次数。另外,使用完Excel对象后,记得正确释放资源,防止进程泄漏。 标签中的“read write”表示这个库主要用于读取和写入Excel文件。C#...
### C# 批量导出到 Excel 的多个 Sheet 页 在现代企业级应用开发中,数据导出是一项常见的需求,特别是在数据报表处理方面。本文将详细介绍如何使用 C# 实现将数据批量导出到 Excel 文件中的多个 Sheet 页。 #### ...
步骤二:导出Excel数据 1. 打开Excel文件,选择包含数据的工作表。 2. 菜单栏中点击“文件”>“保存为”,在弹出窗口中选择保存类型为“文本(逗号分隔)(*.csv)”或“文本(制表符分隔)(*.txt)”。 3. 选择合适的...
本文将详细讲解如何实现高效地导出Excel,并设置格式和样式,以满足自定义查询的需求。 首先,我们需要理解Excel导出的核心技术。在.NET环境中,常用的库有Microsoft.Office.Interop.Excel,它允许我们直接操作...
导出Excel文件主要是为了保存或分享数据,或与其他应用程序兼容。主要的导出方式有: 1. **另存为**:最基础的方式是使用“文件”菜单的“另存为”选项,可以选择不同的文件格式,如Excel工作簿(.xlsx)、PDF、...
例如,可以使用Java程序从Excel文件中读取用户数据,然后批量插入数据库,或者将数据库查询结果导出到Excel文件,便于用户查看和分析。 通过以上介绍,你应该了解了如何使用Java读取.xls和.xlsx文件的基本方法,...
在.NET框架中,导入和导出Excel是一种常见的需求,尤其在Web应用如ASP.NET中,以便用户能够方便地处理数据。本文将详细讲解如何在ASP.NET中实现Excel的导入和导出功能,以及相关的技术要点。 一、Excel与.NET交互的...
Excellize是一个用于读写Microsoft Excel (.xlsx)文件的Go库,支持创建、读取和修改Excel文件。利用这个库,我们可以方便地读取模板文件中的单元格数据,包括公式、样式等,并进行复制或修改。 批量生成Excel文件的...