网站首页 > 文章中心 > 其它

java脚本表格跨行代码

作者:小编 更新时间:2023-09-05 07:19:26 浏览量:183人看过

关于java操作excel

我觉得用JAVA操作EXCEL的话,有点大刀小用,你说的这个东西其实很简单,EXCEL本身就是处理数据问题的.不知道你EXCEL水平怎么样,有几个思路我简单写下,希望可以帮到你:

①如果地址是规范的(同一地址同一称为,不会有北京、北京市、北京海淀等).排序后可以直接排序,增加辅助列.这是最基本最笨的办法.

既然是模拟,就不帮你做了.自己多想想,也正好练习下EXCEL.

如何用java向指定的EXCEL单元格中写入数据?

java脚本表格跨行代码-图1

我们项目里用的 供你参考,没写全,你可以自己百度下

import jxl.Workbook;

import jxl.write.Label;

import jxl.write.WritableImage;

import jxl.write.WritableSheet;

import jxl.write.WritableWorkbook;

import jxl.write.WriteException;

import jxl.write.biff.RowsExceededException;

java脚本表格跨行代码-图2

/**

* 导出excel

* @param reportParams 导出excel列名标示

* @param list导出excel值

* @param headersexcel头

* @param reportName-excel的sheet名

* @param response

* @param startRow从哪一行开始放list值

* @param startCol 从哪一列开始放list值

* @return

*/

public boolean report(ReportBean rb, List list, XlsHeaderBean[] headers, String reportName, HttpServletResponse response, int startRow, int startCol, HttpServletRequest request){

WritableWorkbook wwb = null;

OutputStream os;

boolean flag = true;

Date date = new Date();

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

String strDate = format.format(date);

try {

// 用Workbook类的工厂方法创建工作薄(Workbook)对象

response.setContentType("application/x-msdownload");

String sheetName = "report";

sheetName = sheetName.replaceAll(":", "").replaceAll("[)]", "")

.replaceAll("[(]", "");

// 这里解释一下

response.addHeader("Content-Disposition", "attachment; filename="

+ ".xls");

os = response.getOutputStream();

wwb = Workbook.createWorkbook(os);

} catch (IOException e) {

e.printStackTrace();

return flag = false;

}

if (wwb != null) {

// 创建一个可写入的工作表

WritableSheet ws = wwb.createSheet(reportName, 0);

// 下面开始添加单元格

// 导出excel

Label labelC = null;

for(int j = 0; j headers.length; j++){

if(headers[j].isUnion()){

ws.mergeCells(headers[j].getCol(), headers[j].getRow(), headers[j].getCol()+headers[j].getColLength(), headers[j].getRow()+headers[j].getRowLength());

labelC = new Label(headers[j].getCol(), headers[j].getRow(), headers[j].getValue());

ws.addCell(labelC);

} catch (RowsExceededException e) {

} catch (WriteException e) {

String value = null;

for (int i = 0; i list.size(); i++) {

Map values = (Map)list.get(i);

for (int j = 0; j rb.getReportParams().length; j++) {

// 这里需要注意的是,在Excel中,第一个参数表示列,第二个表示行

Label labelC;

if(values.get(rb.getReportParams()[j]) == null){

value = "";

} else {

if(values.get(rb.getReportParams()[j]) instanceof java.util.Date){

value = format.format(values.get(rb.getReportParams()[j]));

} else if(values.get(rb.getReportParams()[j]) instanceof java.math.BigDecimal){

value = values.get(rb.getReportParams()[j]).toString();

labelC = new Label(j+startCol, i + startRow, value);

// 将生成的单元格添加到工作表中

if(rb.isHasImg()){

String rootPath = this.getServletContext().getRealPath("savefiles");

String imgPath = rb.getImgPath();

if(rootPath != null rootPath.compareTo("") != 0 imgPath != null imgPath.compareTo("") !=0){

String[] strs = imgPath.split("\\/");

String imgName = strs[strs.length-1];

File file = new File(rootPath + File.separator + imgName);

if(file.exists()){

ws.addImage(wi);

// 从内存中写入文件中

wwb.write();

wwb.close();

return flag;

java中输入输出流如何把数据输出为Excel表格形式

实现代码如下:

import org.apache.poi.hssf.usermodel.*;

import java.io.FileOutputStream;

import java.io.IOException;

publicclass CreateCells

{

publicstaticvoid main(String[] args)

throws IOException

HSSFWorkbook wb = new HSSFWorkbook();//建立新HSSFWorkbook对象

HSSFSheet sheet = wb.createSheet("new sheet");//建立新的sheet对象

// Create a row and put some cells in it. Rows are 0 based.

HSSFRow row = sheet.createRow((short)0);//建立新行

// Create a cell and put a value in it.

HSSFCell cell = row.createCell((short)0);//建立新cell

cell.setCellValue(1);//设置cell的整数类型的值

// Or do it on one line.

HSSFCellStyle cellStyle = wb.createCellStyle();//建立新的cell样式

cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));//设置cell样式为定制的日期格式

dCell.setCellValue(new Date());//设置cell为日期类型的值

dCell.setCellStyle(cellStyle); //设置该cell日期的显示格式

csCell.setCellValue("中文测试_Chinese Words Test");//设置中西文结合字符串

// Write the output to a file

FileOutputStream fileOut = new FileOutputStream("workbook.xls");

wb.write(fileOut);

fileOut.close();

用java代码实现读取Excel中每个sheet页的内容,并且要与其他的Excel中某一列的值进行

*

* p标题:readExcel/p

* p描述:读取Excel文件数据/p

* @param excelfilePath Excel文件路径

* @param startRow 开始行

* @param startCol 开始列

* @return ListArrayListString

* @throws IOException

* @throws BiffException

public ListMapString, Object readExcel(String excelfilePath,int startRow, int startCol)

throws IOException, BiffException {

// 读取xls文件

InputStream ins = new FileInputStream(excelfilePath);

// 设置读文件编码

WorkbookSettings setEncode = new WorkbookSettings();

Workbook rwb = Workbook.getWorkbook(ins, setEncode);

ListMapString, Object alldata = new ArrayListMapString, Object();

MapString, Object data = null;

alldata.clear();

// 获得当前Excel表共有几个sheet

Sheet[] sheets = rwb.getSheets();

// 获得表数

int pages = sheets.length;

// 将excel表中的数据读取出来

// 在从Excel中读取数据的时候不需要知道每个sheet有几行,有那多少列

for (int i = 0; i pages; i++) {

//这里读取excel中每个sheet的数据,Sheet sheet = rwb.getSheet(i); 读取第二个sheet就是getSheet(1);

Sheet sheet = rwb.getSheet(i);

int cols = sheet.getColumns(); // 列

// 读取每一行对应的列数目

// 循环读取每一行的全部列数目的内容

int rows = sheet.getRows(); // 行

for (int r = startRow; r rows; r++) {

data = new HashMapString, Object();

// 行循环,Excel的行列是从(0,0)开始

for (int c = startCol; c cols; c++) {

Cell excelRows = sheet.getCell(c, r);

data.put("bgbh", excelRows.getContents());

alldata.add(data);

ins.close();

return alldata;

利用java怎么实现生成报表(Excel文件)

JAVA POI 组件//创建HSSFWorkbook对象

HSSFWorkbook wb = new HSSFWorkbook();

java脚本表格跨行代码-图3

//创建HSSFSheet对象

HSSFSheet sheet = wb.createSheet("sheet0");

//创建HSSFRow对象

HSSFRow row = sheet.createRow((short)0);

//创建HSSFCell对象

HSSFCell cell=row.createCell((short)0);

//用来处理中文问题

//设置单元格的值

cell.setCellValue("单元格中的中文");

//定义你需要的输出流

OutputStream out = new FileOutputStream("viwo.xls");

//输出Excel

java怎么用poi导出到Excle.年度考核汇总跨列成这个样式

给你一段代码参考一下.

%

String filename ="武汉光谷建设投资有限公司"+request.getAttribute("year").toString()+request.getAttribute("month").toString()+"进度报表.xls";

在jsp加上这段代码然后在用table布局即可

以上就是土嘎嘎小编为大家整理的java脚本表格跨行代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章