java导出-请问在java中做导出的时候应该怎么实现下拉列表框

问题描述

请问在java中做导出的时候应该怎么实现下拉列表框

这里我给出了我的java源码 望各位大神仔细看看 小弟在此谢谢了
下面这段代码实现的效果是这样

而我想实现的效果是这样的 如图
在计价方式那 有3个选项 可以进行下拉选择的

```ruby #这里可以指定高亮语言类型#
package com.devsun.action.pm.room;

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.HSSFRichTextString;
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.CellRangeAddress;
import org.apache.poi.hssf.util.HSSFColor;
import org.springframework.beans.factory.annotation.Autowired;

import com.devsun.action.BaseAction;
import com.devsun.biz.pm.BuildingBiz;
import com.devsun.biz.pm.HouseTypeBiz;
import com.devsun.biz.pm.ProjectBiz;
import com.devsun.biz.pm.RoomInfoBiz;
import com.devsun.common.Constants;
import com.devsun.entity.pm.RoomInfo;
import com.dongdong.plugins.permissions.PermissionsAnnotation;

/**

  • 导出房间面积/价格设置
  • @author zhangyan
    *
    */
    public class ZhangYanAction extends BaseAction {

    private static final long serialVersionUID = -940973448889670031L;

    @Autowired

    private RoomInfoBiz roomInfoBiz; //这个是自己获得list的类

    @Autowired
    private ProjectBiz projectBiz;//这个是自己获得list的类

    @Autowired
    private BuildingBiz BuildingBiz;//这个是自己获得list的类

    @Autowired
    private HouseTypeBiz houseTypeBiz;//这个是自己获得list的类

    // 楼栋Id
    private int buildingid;

    //导出排序
    private int paishu = 0 ;

    @PermissionsAnnotation(name="导出房间面积/价格设置")
    public String execute() throws Exception {
    List listRoom = roomInfoBiz.daochu(buildingid,paishu);

    // 创建excel
    int i = 0; int j = 0;
    for(RoomInfo info:listRoom){
    i = info.getProjectId();
    j = info.getBuildingId();
    break;
    }
    String pro = "项目:"+ projectBiz.findById(i).getProjectName()+"--楼栋:"+BuildingBiz.findById(j).getBuildingName();;
    String name = pro+"--房间面积价格设置";

    //以上都是获得导出excel名字
    
    downLoadFile(createExcel(listRoom, name), "房间面积/价格设置.xls");
    return null;
    

    }

    /**

    • 创建excel标题
    • @param academyList
    • @param title
    • @param resultMap
    • @return
    • @throws Exception
      */
      public HSSFWorkbook createExcel(List listRoom, String title)throws Exception {
      try {
      HSSFWorkbook wb = new HSSFWorkbook();
      HSSFSheet sheet = wb.createSheet();
      wb.setSheetName(0, title);
      HSSFRow titleRow = sheet.createRow(0);
      HSSFRow head = sheet.createRow(1);
      // 创建标题
      createTitle(wb, titleRow, title);
      createCell(wb, head, 0, "编号",HSSFColor.GREY_25_PERCENT.index);
      createCell(wb, head, 1, "单元",HSSFColor.GREY_25_PERCENT.index);
      createCell(wb, head, 2, "楼层",HSSFColor.GREY_25_PERCENT.index);
      createCell(wb, head, 3, "号码",HSSFColor.GREY_25_PERCENT.index);
      createCell(wb, head, 4, "房间号码",HSSFColor.GREY_25_PERCENT.index);
      createCell(wb, head, 5, "户型构成",HSSFColor.GREY_25_PERCENT.index);
      createCell(wb, head, 6, "预售套内面积(㎡)",HSSFColor.RED.index);
      createCell(wb, head, 7, "预售建筑面积(㎡)",HSSFColor.RED.index);
      createCell(wb, head, 8, "计价方式",HSSFColor.RED.index);
      createCell(wb, head, 9, "底单价(元)",HSSFColor.RED.index);
      createCell(wb, head, 10, "底总价(元)",HSSFColor.RED.index);
      createCell(wb, head, 11,"表单价(元)",HSSFColor.RED.index);
      createCell(wb, head, 12, "表总价(元)",HSSFColor.RED.index);
      createCell(wb, head, 13, "门牌号",HSSFColor.RED.index);
      createCell(wb, head, 14, "销售状态",HSSFColor.GREY_25_PERCENT.index);
      sheet.addMergedRegion(getCellRangeAddress(1, 1, 1, 15));
      int row=2;//行的记录数
      int index=0;
      if(listRoom!=null &&listRoom.size()>0){
      for (RoomInfo roomInfo : listRoom){
      HSSFRow bodyRow = sheet.createRow(row++);
      index++;
      String jijia = "";
      String sellStatus = "";
      String menpaihao = ""; //这3个值我把他精简了 获取比较复杂

              createCell(wb, bodyRow, 0, String.valueOf(roomInfo.getId()), HSSFColor.WHITE.index);//编号
              createCell(wb, bodyRow, 1, roomInfo.getUtil()+"单元",HSSFColor.WHITE.index);//单元
              createCell(wb, bodyRow, 2, String.valueOf(roomInfo.getStorey()),HSSFColor.WHITE.index);//楼层
              createCell(wb, bodyRow, 3, roomInfo.getNum(),HSSFColor.WHITE.index);//号码
              createCell(wb, bodyRow, 4, roomInfo.getRoomNum(),HSSFColor.WHITE.index);//房间号码
              createCell(wb, bodyRow, 5, houseTypeBiz.findHouseType(roomInfo.getHoseTypeId()),HSSFColor.WHITE.index);//户型
              createCell(wb, bodyRow, 6, String.valueOf(roomInfo.getPlanSaleIndoorArea()),HSSFColor.WHITE.index);//预售套内
              createCell(wb, bodyRow, 7, String.valueOf(roomInfo.getPlanSaleBuildingArea()),HSSFColor.WHITE.index);//预售建筑
              createCell(wb, bodyRow, 8, jijia,HSSFColor.WHITE.index);//计价方式
              createCell(wb, bodyRow, 9, String.valueOf(roomInfo.getBottomPrice()),HSSFColor.WHITE.index);//表单价
              createCell(wb, bodyRow, 10, String.valueOf(roomInfo.getBottomTotal()),HSSFColor.WHITE.index);//表总价
              createCell(wb, bodyRow, 11, String.valueOf(roomInfo.getPrice()),HSSFColor.WHITE.index);//底单价
              createCell(wb, bodyRow, 12, String.valueOf(roomInfo.getTotalPrice()),HSSFColor.WHITE.index);//底总价
              createCell(wb, bodyRow, 13, menpaihao,HSSFColor.WHITE.index);//门牌号
              createCell(wb, bodyRow, 14, sellStatus,HSSFColor.WHITE.index);//销售状态
          }
          // 设置列宽
          sheet.setColumnWidth(0, 3000);// 单位
          sheet.setColumnWidth(1, 3000);// 单位
          sheet.setColumnWidth(2, 3000);// 单位
          sheet.setColumnWidth(3, 3000);// 单位
          sheet.setColumnWidth(4, 3000);// 单位
          sheet.setColumnWidth(5, 3000);// 单位
          sheet.setColumnWidth(6, 5000);// 单位
          sheet.setColumnWidth(7, 5000);// 单位
          sheet.setColumnWidth(8, 3000);// 单位
          sheet.setColumnWidth(9, 4000);// 单位
          sheet.setColumnWidth(10, 4000);// 单位
          sheet.setColumnWidth(11, 4000);// 单位
          sheet.setColumnWidth(12, 4000);// 单位
          sheet.setColumnWidth(13, 3000);// 单位
          sheet.setColumnWidth(14, 3000);// 单位
      }
      return wb;
      

      } catch (Exception e) {
      e.printStackTrace();
      }
      return null;
      }

    /**

    • @功能:创建标题
    • @param wb
    • @param titleRow
    • @param title
      */
      private void createTitle(HSSFWorkbook wb, HSSFRow titleRow, String title) {
      titleRow.setHeight((short) 600);
      HSSFCell cell = titleRow.createCell(0);
      HSSFRichTextString h = new HSSFRichTextString(title);
      // 字体样式
      HSSFFont font = wb.createFont();
      font.setColor(HSSFColor.BLACK.index);
      font.setFontHeightInPoints((short) 18);
      font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
      h.applyFont(font);
      cell.setCellValue(h);
      cell.setCellStyle(getCellDefaultStyle(wb,HSSFColor.WHITE.index));
      }

    /**

    • @功能:获取单元格默认样式
    • @param wb
    • @return
      */
      private HSSFCellStyle getCellDefaultStyle(HSSFWorkbook wb,short color) {
      // 设置单元格样式
      HSSFCellStyle cellstyle = wb.createCellStyle();
      cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);// 设置水平对齐方式
      cellstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 设置垂直对齐方式
      cellstyle.setFillForegroundColor(color);
      cellstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
      cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
      cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
      cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
      cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
      cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
      cellstyle.setWrapText(true);
      return cellstyle;
      }

    /**

    • @功能:创建cell
    • @param wb
    • @param row
    • @param col
    • @param val
      */
      private void createCell(HSSFWorkbook wb, HSSFRow row, int col, String val,short color) {
      HSSFCell cell = row.createCell(col);
      cell.setCellValue(val);
      if(val!=null){
      System.out.println(val);
      if(!val.endsWith(".00")&&!val.endsWith(".000")){
      cell.setCellStyle(getCellDefaultStyle(wb,color));
      }else{
      cell.setCellStyle(getCellMoneyStyle(wb,color));
      }
      }else{
      cell.setCellStyle(getCellDefaultStyle(wb,color));
      }

    }

    private HSSFCellStyle getCellMoneyStyle(HSSFWorkbook wb,short color) {
    // 设置单元格样式
    HSSFCellStyle cellstyle = wb.createCellStyle();
    cellstyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);// 设置水平对齐方式
    cellstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 设置垂直对齐方式
    cellstyle.setFillForegroundColor(color);
    cellstyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    cellstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
    cellstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
    cellstyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
    cellstyle.setWrapText(true);
    return cellstyle;
    }

    @SuppressWarnings("deprecation")
    private CellRangeAddress getCellRangeAddress(int startRow, int endRow,
    int startColumn, int endColumn) {
    return new CellRangeAddress(startRow - 1, endRow - 1, startColumn - 1,
    endColumn - 1);
    }

    public int getBuildingid() {
    return buildingid;
    }

    public void setBuildingid(int buildingid) {
    this.buildingid = buildingid;
    }

    public int getPaishu() {
    return paishu;
    }

    public void setPaishu(int paishu) {
    this.paishu = paishu;
    }

}



时间: 2024-09-20 09:06:03

java导出-请问在java中做导出的时候应该怎么实现下拉列表框的相关文章

.NET 导出图片到Excel中,打开不显示(或提示受保护)问题。

问题描述 .NET 导出图片到Excel中,打开不显示(或提示受保护)问题. public static MemoryStream TablesToExcelForXLSX(DataTable dt, DataTable reportTable, string file, int timeCount, string exportAll, string exportDatasource, string exportChart, out byte[] buf) { //HSSFWorkbook //

页面<img>标签显示的图片,请问用java可以导入到excel中么?怎么导入?

问题描述 页面<img>标签显示的图片,请问用java可以导入到excel中么?怎么导入? oracle存储图片的类型是blob,这个是可以在页面读取出来的,但是怎么导入到excel中呢? 解决方案 img需要根据src用httpclient先下载,然后再插入图片到excel中. 解决方案二: 如果是本地的图片,并且blob类型,存储的,需要导出到文件. 解决方案三: http://stackoverflow.com/questions/681206/insert-image-into-exc

java 三大框架 关于Excel导入数据库导出数据库有没有视频或者其他教程,【新手求助】

问题描述 [新手求助]java三大框架关于Excel导入数据库导出数据库有没有视频或者其他教程,由于刚刚接触到,所以不是很清楚.求大神有教程的分享下,不尽感激 解决方案 解决方案二:查查api这类的网上很多的.解决方案三:java导入导出Excel跟框架无关的,网上的例子很多的,关于java操作Excel,有poi,jxl,java2word,这里有个poi的视频,你可以看下http://www.java1234.com/a/yuanchuang/poi/解决方案四:利用poi读取单元格然后组装

php调用java不能实现excel数据的导入导出?

问题描述 linux系统中,用java实现了将数据库中数据导成excel格式的文件,也实现了将excel文件中数据导入到数据库中,直接用java/javac编译运行程序没问题,也能实现数据的导入导出.但是在前台用php写的页面中却不能调用这个类的这些方法实现数据的导入导出,可以调用这个类的测试方法(比如返回数字1)得到想要的结果,不知道是什么原因?是不是在PHP中还要做什么设置来支持excel的导入导出?java实现了excel数据的导入导出,应该和php没有关系吧?请高手解答,急待您的回答?另

利用Java进行MySql数据库的导入和导出

利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令. MySql导出数据库的命令如下: mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName > exportPath 利用Java调用命令窗口执行命令来进行MySql导入数据库一般分三步走: 第一步:登录Mysql数据库,在登录数据库的时候也可以指定登录到哪个数据库,如果指定了则可以跳过第二步: 第二步:切换数据库到需要导入

Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)_java

Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包) 师兄部署了新的虚拟机,新学期大搞起来!之前由于爬虫代码不稳定,所以一直都是直接用Eclipse运行,然后遇到问题就修改的.但是这个比较麻烦,而且Eclipse本身就很占内存啊,摔!所以今天下午就把之前的代码清减了一下,对很多挫挫的System.out.println替换了log4j,路径啊数据库连接呀用配置文件处理了,最后打成可执行的Jar,这样在新的虚机上就可以大展拳脚咯^_^Y Biu~废话说完,进入正题,将Jav

方法-JAVA项目中做登录加密操作

问题描述 JAVA项目中做登录加密操作 在项目中做用户登录操作,如果一个陌生人随意乱输用户名和密码,假定正好输入都正确(数据库中已保存的),为避免此类问题发生,要对登录做加密,使用MD5方法是不是比较好,是否还有其它好的方法,谢谢 解决方案 因此,作为这个用途,那些不可逆的散列算法都可以达到这个目的,比如MD5.SHA1等等,以及它们的变种,比如两次MD5,加上一个随机数再MD5(俗称加盐).为什么要变化?因为人们将常见密码和MD5存入一个很大的数据库,所以反插起来很容易. 解决方案二: MD5

请问下java中FileOutputStream,PrintStream中的区别

问题描述 请问下java中FileOutputStream,PrintStream中的区别 请问下俩个输出流的区别,什么时候用哪个流?是否可以这么理解,FileOutputStream是关联字节文件的基础?PrintStream只是其附加功能,就像BufferedOutputStream一样? 解决方案 public class FileOutputStream extends OutputStream public class PrintStream extends FilterOutputS

导出 word模板-做一个题库管理系统,怎么将存储在数据库中的试卷内容导出到word模板中呢

问题描述 做一个题库管理系统,怎么将存储在数据库中的试卷内容导出到word模板中呢 C#2008,access2003,做一个题库管理系统,怎么将存储在数据库中的试卷内容导出到word模板中呢,求助各位大神,求代码 解决方案 用npoi操作数据库http://my.oschina.net/yangxiaoguang/blog/264948 解决方案二: 用npoi操作word文档http://my.oschina.net/yangxiaoguang/blog/264948 解决方案三: http