`
aa00aa00
  • 浏览: 333101 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
文章分类
社区版块
存档分类
最新评论

项目用到的Excel的功能

 
阅读更多
项目中用到的,Excel导出的功能,贴出来.
package com.chinasofti.basic.util;

import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
* 导出为excel chinasofti.com Inc. Copyright (c) 2002-2012 All Rights Reserved.
*
* Creation Date : 2012-3-8 Last modification by Author: Administrator
*/
public class ExportExcelFile implements ExcelContext {

public static final String FILE_TYPE = ".xls";
/**
* 导出的文件名称
*/
private String fileName;

/**
*
* @param headers
*            表头
* @param dataList
*            数据
* @param response
*            response
* @param request
*            request
*/
@SuppressWarnings("static-access")
public void export(List<String> headers,
List<Map<String, ValueType>> dataList,
HttpServletResponse response, HttpServletRequest request) {

String file_name = this.getFileName();
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
workbook.setSheetName(0, file_name);
// sheet.setc
// 设置表头为黑体
HSSFFont titleFont = workbook.createFont();
titleFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
HSSFCellStyle titleStyle = workbook.createCellStyle();
titleStyle.setFont(titleFont);
// 居右
HSSFCellStyle cellStyle_right = workbook.createCellStyle();
cellStyle_right.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
// 居左
HSSFCellStyle cellStyle_left = workbook.createCellStyle();
cellStyle_left.setAlignment(HSSFCellStyle.ALIGN_LEFT);
// 居中
HSSFCellStyle cellStyle_center = workbook.createCellStyle();
cellStyle_center.setAlignment(HSSFCellStyle.ALIGN_CENTER);

int row = 0;
int columnHead = 0;
// 表头
{
HSSFRow rowCell = sheet.createRow(row);
rowCell.setHeight((short) 400);
// 序号
HSSFCell cell = rowCell.createCell(columnHead);
cell.setCellValue(ExcelContext.CELL_NUM_NAME);
cell.setCellStyle(titleStyle);
// cell.setCellStyle(cellStyle_left);
sheet.setColumnWidth(columnHead,
(short) (Integer.valueOf(10) * 256));
columnHead++;

for (String header : headers) {
cell = rowCell.createCell(columnHead);
cell.setCellValue(header);
cell.setCellStyle(titleStyle);
sheet.setColumnWidth(columnHead,
(short) (Integer.valueOf(25) * 256));// 设置列宽,20个字符宽
columnHead++;
}
row++;
}

// 数据
for (Map<String, ValueType> elmment : dataList) {
HSSFRow rowDataCell = sheet.createRow(row);
// 设置序号列
HSSFCell numCell = rowDataCell.createCell(0);
numCell.setCellValue(row);
numCell.setCellStyle(cellStyle_left);
int size = elmment.size();
// 读取明细数据
for (int i = 1; i < size + 1; i++) {
HSSFCell dataCell = rowDataCell.createCell(i);
ValueType property = elmment.get(String.valueOf(i));
if (this.TEXT_TYPE.equals(property.getType())) {
// dataCell.setCellType(HSSFCellStyle.ALIGN_LEFT);
} else if (this.NUMBER_TYPE.equals(property.getType())) {
dataCell.setCellStyle(cellStyle_right);
}
dataCell.setCellValue(property.getValue());
}
row++;
}

// 文件名称格式
DateFormat format = new SimpleDateFormat("yyyyMMdd");
String strNowDate = format.format(new Date());
file_name = file_name + "_" + strNowDate + FILE_TYPE;

response.setCharacterEncoding("gb2312");
// 设置response内容的类型
response.setContentType("application/x-download");
try {
response.setHeader("Content-disposition", "attachment;filename="
+ URLEncoder.encode(file_name, "UTF-8"));
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
OutputStream os;
try {
os = response.getOutputStream();
workbook.write(os);
os.flush();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public String getFileName() {
if (fileName.endsWith(FILE_TYPE)) {
fileName = fileName.substring(0, fileName.lastIndexOf("."));
}
return fileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}
}


项目用调用的方式:
ExportExcelFile exportFile = new ExportExcelFile();
// 设置EXCEL表头
exportFile.setFileName(ExcelContext.CONFIG_FILE_NAME);
exportFile.export(headers,dataList,response(), request());
分享到:
评论

相关推荐

    vc 6.0 操作excel用到的excel.cpp与excel.h

    在实际开发中,通过这样的封装,开发者可以方便地实现以下功能: 1. 启动和关闭Excel应用程序。 2. 创建或打开一个工作簿。 3. 读取和写入单元格的数据。 4. 添加、删除或修改工作表。 5. 处理公式和函数。 6. 插入...

    excel导入用到jar包

    标题中的"excel导入用到jar包"指的是为了在Java程序中读取和操作Excel文件,我们需要引入特定的库,这里提及的是Apache POI项目提供的JAR文件。 Apache POI是一个流行的开源库,专门用于处理Microsoft Office格式的...

    通过jQuery实现Excel风格web应用功能

    标题中的“通过jQuery实现Excel风格web应用功能”指的是利用JavaScript库jQuery来创建具有类似Microsoft Excel功能的网页应用程序。这样的功能通常包括单元格编辑、公式计算、数据排序、筛选以及表格样式控制等,...

    excel.h和excel.cpp

    在你的项目中,你需要将`excel.h`包含到需要用到Excel功能的源文件中,如: ```cpp #include "excel.h" ``` 然后,你可以直接调用`excel.h`中声明的函数来执行相应的Excel操作。确保`excel.cpp`已经被添加到你的项目...

    读写Excel所用到的jar包

    7. Apache POI-SS:这是Apache POI的一个子项目,专注于Spreadsheet文档处理,包含了HSSF和XSSF,提供了更细粒度的控制,可以处理复杂的Excel功能,如图表、超链接、图像等。 在实际开发中,我们通常会根据项目需求...

    C#中调用excel所用到的dll引用

    总之,通过Microsoft.Office.Interop.Excel,C#开发者可以在应用程序中无缝集成Excel功能,进行复杂的表格处理和数据分析。不过,为了确保代码的稳定性和效率,需要熟悉COM互操作的工作原理,并注意适当的错误处理和...

    Excel导入用到的包和实例

    在Java编程语言中,处理Excel文件是一项常见的任务,特别是在数据处理、数据分析或自动化报告生成的场景下。...通过熟练掌握这些基础操作,你可以轻松地将数据导入和导出到Excel,为你的应用程序增加更多实用功能。

    这是Unity读写Excel用到的dll

    Unity本身并不直接支持读写Excel文件,但可以通过引入外部DLL(动态链接库)来实现这一功能。"这是Unity读写Excel用到的dll"这个标题指出,我们将讨论如何在Unity中利用DLL来读取和写入Excel文件。 Unity是基于C#的...

    NPOI操作Excel用到的dll

    在标题提到的"NPOI操作Excel用到的dll"中,我们看到的是一系列NPOI相关的DLL文件,这些是.NET程序运行时需要的组件,用于提供具体的功能。下面分别解释每个DLL的作用: 1. **NPOI.HSSF.dll**:这是NPOI的核心组件之...

    poi读取Excel用到的jar包

    标题提到的“poi读取Excel用到的jar包”指的是在Java项目中使用POI库进行Excel操作所需引入的依赖文件。这些jar包在描述中给出,包括了以下几个: 1. poi-ooxml-schemas-3.8-beta5-20111217.jar:这个文件包含了...

    导出,解析excel 用到的全部jar 包

    标题提到的"导出,解析excel 用到的全部jar 包"正是指这些库的集合。描述中提到的"大家有需要的可以下载一下"表明这是一个资源共享的行为,方便其他开发者获取所需库。 在Java中,最常用的两个处理Excel的库是...

    Android中生成excel用到的jar文件.rar

    这里提到的"Android中生成excel用到的jar文件.rar"是一个包含关键库的压缩包,主要包含了一个名为"jxl.jar"的Java库,用于在Android应用中生成Excel文件。现在我们将详细讨论如何利用这个库以及相关的知识点。 1. *...

    一个通用从数据库导出excel、excel导入数据库组件所用到的jar包

    标题中的“一个通用从数据库导出excel、excel导入数据库组件所用到的jar包”指的是一个Java开发的工具,主要用于数据的导入导出操作。这个工具可以方便地将数据库中的数据导出为Excel格式,同时也可以将Excel文件中...

    EXCEL可视化数据看板-项目收支表格Excel模板.zip

    总的来说,“EXCEL可视化数据看板-项目收支表格Excel模板”结合了Excel的各项强大功能,旨在提供一个高效、直观的项目财务管理平台。通过对以上知识点的运用,用户不仅能准确掌握项目收支情况,还能通过数据驱动的...

    excel转换html类(Excel2HtmlUtil的JAVA类)

    - `lib`:这是一个常见的库文件夹,通常包含项目所需的外部jar包,如Apache POI库和其他可能用到的Java库。 综上所述,这个压缩包提供了一个完整的Java解决方案,用于将Excel文件转换为HTML。它利用Apache POI库...

    java读取Excel文件时用到的所有jar包

    在实际项目中,我们首先需要将这些jar包添加到项目的类路径中,这可以通过IDE如Eclipse或IntelliJ IDEA的“添加库”功能完成,或者在构建工具如Maven或Gradle的配置文件中指定依赖。 接下来,我们可以使用这些库...

    Python3项目开发Excel数据分析师程序

    对于Excel数据分析师程序而言,主要会用到以下几个方面的知识点: 1. **读取Excel文件**:在Python中,可以使用`pandas`库来读取Excel文件。通过`pandas.read_excel()`函数,可以直接将Excel文件中的数据加载为...

    实训项目三Excel综合应用安思帆.docx

    通过本实训项目的深入学习,学生能够逐步掌握 Excel 各项功能,并能够在实际工作中灵活运用。这不仅能够提高工作效率,更能培养学生解决复杂问题的能力。在快节奏和数据驱动的时代,Excel 综合应用能力是职场竞争力...

    silverlight4 打开excel 浏览excel

    在本例中,可能用到了名为“XLSXparsingLib”的库,这个库可能是专门用于解析XLSX格式(Excel 2007及以上版本使用的Open XML格式)的组件。XLSXparsingLib可能提供了API,使得开发者可以读取工作表、单元格数据、...

    golang实现的读取excel模板批量生成excel工具.zip

    本项目"golang实现的读取excel模板批量生成excel工具"正是基于这一需求而设计的,它允许用户通过读取一个Excel模板来快速创建多个类似的Excel文件。 首先,我们来看这个工具的核心技术点。在Go中,处理Excel文件...

Global site tag (gtag.js) - Google Analytics