热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java对模板指定行开始写入,java按行写入文件

本文目录一览:1、JAVA如何向指定的EXCEL单元格中写入数据??

本文目录一览:


  • 1、JAVA如何向指定的EXCEL单元格中写入数据??


  • 2、java读写文件指定行的问题


  • 3、如何用Java实现向一个file指定位置写入多行数据,每行数据要指定开始的p


  • 4、java 如何向txt文件中的某一行继续写入

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

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

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;

/**

* 导出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("[(]", "");

// 这里解释一下

// attachment; 这个代表要下载的,如果去掉就编程直接打开了

// filename是文件名,另存为或者下载时,为默认的文件名

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

+ new String(sheetName.getBytes("UTF-8"), "ISO-8859-1")+ strDate

+ ".xls");

os = response.getOutputStream();

wwb = Workbook.createWorkbook(os);

} catch (IOException e) {

e.printStackTrace();

return flag = false;

}

if (wwb != null) {

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

// Workbook的createSheet方法两个参数,1名称,2位置

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

// 下面开始添加单元格

// 导出excel

try {

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) {

e.printStackTrace();

} catch (WriteException e) {

e.printStackTrace();

}

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();

} else {

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

}

}

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

try {

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

ws.addCell(labelC);

} catch (RowsExceededException e) {

e.printStackTrace();

return flag = false;

} catch (WriteException e) {

e.printStackTrace();

return flag = false;

}

}

}

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()){

WritableImage wi = new WritableImage(0, startRow + list.size() + 2,12,20, file);

ws.addImage(wi);

}

}

}

try {

// 从内存中写入文件中

wwb.write();

wwb.close();

return flag;

} catch (IOException e) {

e.printStackTrace();

return flag = false;

} catch (WriteException e) {

e.printStackTrace();

return flag = false;

}

}

return flag;

}

java读写文件指定行的问题

读写是两个不同的分支,通常都是分开单独使用的,在读取到每行内容后,通过特定的条件判断即可获取到应用的行内容,之后进行输出即可。

举例:

可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。

BufferedReader bre = null;

try {

String file = "D:/test/test.txt";

bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流

while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环

{

System.out.println(str);//原样输出读到的内容,此处如果增加必要的条件,就可以货到的指定的内容

};

可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,

OutputStreamWriter pw = null;//定义一个流

pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例

pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write

pw.close();//关闭流

备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。

如何用Java实现向一个file指定位置写入多行数据,每行数据要指定开始的p

Java使用FileWriter实现文件的写入,用法为:FileWriter(file,true); 其中第二个参数设置成false就是覆盖写入,true就是增量存储。

java 如何向txt文件中的某一行继续写入

Java的RandomAccessFile提供对文件的读写功能,与普通的输入输出流不一样的是RamdomAccessFile可以任意的访问文件的任何地方。这就是“Random”的意义所在。

相关API:

RandomAccessFile(String

name, String

mode)构造器,模式分为r(只读),rw(读写)等

RandomAccessFile.readLine()方法实现对一整行的读取,并重新定位操作位置

RandomAccessFile.write(byte[] b)用于字节内容的写入

示例如下:

RandomAccessFile raf = new RandomAccessFile("f:/1.txt", "rw");

int targetLineNum = 10;

int currentLineNum = 0;

while(raf.readLine() != null){

    if(currentLineNum == targetLineNum){ // 定位到目标行时结束

break;

    }

    currentLineNum++;

}

raf.write("\r\ninsert".getBytes());

raf.close();


推荐阅读
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • 使用lambda表达式排序Collections.sort(temp,(Stringa,Stringb)-{returnb.compareTo(a);});Collections ... [详细]
  • 异常要理解Java异常处理是如何工作的,需要掌握一下三种异常类型:检查性异常:最具代表性的检查性异常是用户错误或问题引起的异常ÿ ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文详细探讨了 org.apache.hadoop.ha.HAServiceTarget 类中的 checkFencingConfigured 方法,包括其功能、应用场景及代码示例。通过实际代码片段,帮助开发者更好地理解和使用该方法。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • ˂p优秀的马里奥YouprobablywanttomakethecreationoftheformuladynamicsoeachrowofCta ... [详细]
author-avatar
手机用户2602933853
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有