`
零碎的记忆
  • 浏览: 53459 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

HSSFWorkbook 创建excel文件(导出数据)

 
阅读更多

package test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

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;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.hssf.util.Region;

import com.sun.java_cup.internal.internal_error;

public class ExportExcel {
 public static void main(String[] args) {
  HSSFWorkbook bookWorkbook = new HSSFWorkbook();// 创建excel文件
  HSSFSheet sheet = bookWorkbook.createSheet("第一个");
  HSSFCell cell;
  HSSFRow row;
  HSSFCellStyle style = bookWorkbook.createCellStyle();// 创建一个单元的样式
  // 背景色的设定
  style.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
  // 前景色的设定
  style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
  // 填充模式
  style.setFillPattern(HSSFCellStyle.FINE_DOTS);
  style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 设置水平居中
  style.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);// 上下居中
  // 设置上下左右边框样式
  style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
  style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  style.setBorderRight(HSSFCellStyle.BORDER_THIN);
  style.setBorderTop(HSSFCellStyle.BORDER_THIN);
  // 设置字体
  HSSFFont font = bookWorkbook.createFont();
  font.setFontName("黑体");
  font.setFontHeightInPoints((short) 22);
  font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

  String[] headRow1 = { "序号", "学校","", "班级信息","","个人信息","","", "综合考评" };
  String[] headRow2 = { "", "名称", "位置", "年级", "几班", "姓名", "性别", "联系方式",
    "" };
  int rowint = 0;

  int titlerow1 = rowint++;
  row = sheet.createRow((short) titlerow1);
  for (int i = 0; i < headRow1.length; i++) {
   cell = row.createCell((short) i);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);// 设置值的编码格式,确保不会出现乱码
   cell.setCellValue(headRow1[i]);
   cell.setCellStyle(style);
   
  }
  int titlerow2 = rowint++;
  row = sheet.createRow(titlerow2);
  for (int i = 0; i < headRow2.length; i++) {
   cell = row.createCell((short) i);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue(headRow2[i]);
   cell.setCellStyle(style);
  }
  // 合并单元格
  sheet.addMergedRegion(new Region(titlerow1, (short) 1, titlerow1,
    (short) 2));// 合并第一行
  // 2,三两格,从0开始
  sheet.addMergedRegion(new Region(titlerow1, (short) 3, titlerow1,
    (short) 4));
  sheet.addMergedRegion(new Region(titlerow1, (short) 5, titlerow1,
    (short) 7));
  sheet.addMergedRegion(new Region(titlerow1, (short) 8, titlerow2,
    (short) 8));// 合并行
  // 设置每列的宽度
  int k = 0;
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  sheet.setColumnWidth((short) k++, (short) 4200);
  
  
  //放入信息,一般为list,这里用模拟信息
  String message[]={"1","清华","北京","计算机","1","snow","女","562771681","有"};
  List list=new ArrayList();
  list.add(message);
  titlerow2++;
  for (int i = 0; i < list.size(); i++) {
   String mess[]=(String [])list.get(i);
   row=sheet.createRow((short)(titlerow2+i));
   int kk =0;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[0]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[1]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[2]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[3]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[4]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[5]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[6]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[7]));
   kk++;
   cell=row.createCell((short)kk);
   cell.setCellStyle(style);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue((mess[8]));
   
  }
  
  try {
   FileOutputStream outputStream;

   
   
   /**  输出信息,导出excel
    *
    *  response.setContentType("application/vnd.ms-excel;charset=UTF-8");
    response.setHeader("Content-Type", "application/octet-stream");
    *  OutputStream out = response.getOutputStream();
    wb.write(out);
    out.close();
    */
   try {
    outputStream = new FileOutputStream("e://abc.xls");
    bookWorkbook.write(outputStream);
    outputStream.flush();
    outputStream.close();
   } catch (FileNotFoundException e) {
    System.err.println("获取不到位置");
    e.printStackTrace();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  } finally {

  }
 }
}

  • poi.zip (776.1 KB)
  • 下载次数: 65
分享到:
评论

相关推荐

    C#创建Excel文件并将数据导出到Excel文件

    在链接的博客文章中,作者可能详细讲解了如何使用C#和NPOI库创建Excel文件并导出数据的步骤,包括创建工作簿、工作表,插入数据,设置样式等,并给出了具体代码示例。通过阅读这个博客,你可以获取到更具体的操作...

    VB.net实现无需安装Excel由代码创建Excel文件纯代码创建Excel文件

    无论是使用NPOI还是EPPlus,创建Excel文件的过程都涉及到创建工作簿、工作表,然后写入数据,最后保存文件。这些库不仅支持基本的数据写入,还支持格式设置、公式计算等复杂功能,使得在VB.NET中无需安装Excel也能...

    使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包

    - **创建Workbook对象**:这是Excel文件的容器,可以使用`XSSFWorkbook`(针对.xlsx)或`HSSFWorkbook`(针对.xls)创建。 - **创建Sheet对象**:表示Excel工作表,可以通过调用Workbook的`createSheet()`方法创建。...

    C# 导入Excel文件到ListView和导出ListView到Excel文件

    4. **导出ListView到Excel**: 导出过程需要创建一个新的Excel文件并写入ListView中的数据。首先,创建一个`XSSFWorkbook`对象,然后创建一个` XSSFSheet`。为每一列创建一个`XSSFRow`,并在每个行中添加`XSSFCell`。...

    Unity3d动态创建excel并写入数据

    本教程将详细讲解如何在Unity3D环境中动态创建Excel文件并写入数据。 首先,我们需要一个库来帮助我们在Unity中处理Excel文件。一种常用的选择是NPOI,这是一个.NET平台下的开源库,支持读写Microsoft Office格式的...

    Winform中通过NPOI导出Excel的三种方式HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook示例代码.zip

    创建Excel文件的基本步骤如下: ```csharp using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; // 创建HSSFWorkbook实例 HSSFWorkbook workbook = new HSSFWorkbook(); // ...

    将数据导成excel

    2. **创建Excel工作簿**:使用Apache POI,创建一个`XSSFWorkbook`实例(对于.xlsx格式)或`HSSFWorkbook`实例(对于.xls格式)。 3. **添加工作表**:向工作簿中添加一个新的工作表,可以命名为“员工信息”或者...

    导入导出Excel方法,很详细

    总结来说,导入导出Excel是数据处理的重要环节,涉及到对Excel文件的操作,包括读取、写入和格式设置。选择合适的库,创建有效的模板,以及使用预先封装好的工具类,都能帮助我们高效地完成这项任务。在实际项目中,...

    java_poi实现excel导入导出

    要使用 Java POI 实现 Excel 导出,需要首先创建一个 HSSFWorkbook 或 XSSFWorkbook 对象,然后使用该对象创建一个工作表。下面是一个简单的示例: ```java import org.apache.poi.hssf.usermodel.HSSFWorkbook; ...

    java中将数据和图片导出到Excel文件

    // 导出数据 exportDataToExcel(excelFilePath, dataList); // 图片路径 String imagePath = "image.jpg"; // 插入图片 insertImageToExcel(excelFilePath, imagePath, 1, 1, 10, 10); } } ``` #### 五、...

    Freemarker实现excel导出功能

    在Java世界里,它也被广泛用于生成静态文档或处理数据导出任务,比如Excel文件的生成。本篇文章将详细探讨如何使用Freemarker来实现Excel导出功能,并通过实际例子加深理解。 一、Freemarker基础 1. 模板语言:...

    java实现Excel导入导出

    Java 实现 Excel 导入导出是指使用 Java 语言编写程序来实现将 Excel 文件中的数据导入到 Java 程序中,并将 Java 程序中的数据导出到 Excel 文件中。这种操作可以使用 Apache POI 库来实现。 POI 库简介 Apache ...

    poi根据excel模板文件导出数据.pdf

    本文将详细介绍如何使用Apache POI库根据Excel模板文件导出数据。Apache POI是一个流行的Java库,它允许开发人员创建、修改和显示Microsoft Office格式的文件,包括Excel。在本示例中,我们将关注如何利用POI库处理...

    POI实现Excel导入导出并附带加载进度条

    总之,这个项目是一个完整的Java解决方案,用于处理Excel文件的导入导出,同时具备用户友好的进度条显示。它利用了Apache POI的强大功能,结合maven的依赖管理,以及可能的GUI组件,提供了高效且直观的数据操作体验...

    Excel导入导出

    1. **创建Workbook对象**:在NPOI中,Excel文件被抽象为Workbook对象,你可以通过HSSFWorkbook或XSSFWorkbook类实例化它。例如,如果你正在处理一个BIFF8格式的文件,你可以这样创建: ```csharp var workbook = ...

    excel导出实现代码

    总结来说,"Excel导出实现代码"涉及到的关键知识点是使用Apache POI库在Java中创建和写入Excel文件。通过理解并熟练运用上述步骤和API,开发者可以轻松地在应用程序中实现Excel数据的动态生成和导出。

    C# Excel导入导出

    在C#中使用NPOI导入Excel数据时,首先需要创建一个`HSSFWorkbook`或`XSSFWorkbook`对象,具体取决于Excel文件的格式。然后,通过`ISheet`对象访问工作表,并使用`IRow`和`ICell`接口来读取单元格的值。例如,可以...

    .net导入导出Excel文件

    在.NET开发环境中,处理Excel文件是一项常见的任务,无论是数据导入还是导出,都有很多方法可以实现。本篇文章将深入探讨如何使用NPOI这个开源库来处理Excel文件,并结合DataTable进行数据交换。 NPOI是一个.NET...

    C#导出Excel 导出PDF

    以下是一个简单的使用EPPlus导出数据到Excel的示例: ```csharp using OfficeOpenXml; // 假设你已经有了一个DataTable或List&lt;List&lt;string&gt;&gt;的数据源 var data = GetData(); using (var package = new ExcelPackage...

Global site tag (gtag.js) - Google Analytics