`

java操作excel 替换指定字符串

 
阅读更多

根据excel模板里设置指定的num0,num1,num2,num3.然后替换成想到的内容,生成新的excel文件

 

import org.apache.poi.hssf.usermodel.HSSFCell;
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.poifs.filesystem.POIFSFileSystem;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * Writer: fuanyu
 * Date  : 14-12-26
 * Time  : 上午9:43
 */

@SuppressWarnings("unchecked")
public class TestExcel {

     /**
     * 替换Excel模板文件内容
     * @param item 文档数据
     * @param sourceFilePath Excel模板文件路径
     * @param targetFilePath Excel生成文件路径
     */
    public static boolean replaceModel(Map item, String sourceFilePath, String targetFilePath) {
        boolean bool = true;
        try {

            POIFSFileSystem fs  =new POIFSFileSystem(new FileInputStream(sourceFilePath));
            HSSFWorkbook wb = new HSSFWorkbook(fs);
            HSSFSheet sheet = wb.getSheetAt(0);
            Iterator rows = sheet.rowIterator();
            while(rows.hasNext()){
                   HSSFRow row = (HSSFRow) rows.next();
             
              if(row!=null)
              {
                    int num = row.getLastCellNum();
                  for(int i=0;i<num;i++)
                  {
                      HSSFCell cell=  row.getCell(i);
                      if(cell!=null)
                      {
                        cell.setCellType(HSSFCell.CELL_TYPE_STRING);
                      }
                      if(cell==null || cell.getStringCellValue()==null)
                      {
                          continue;
                      }
                       String value= cell.getStringCellValue();
                      if(!"".equals(value))
                      {
                        Set<String> keySet = item.keySet();
                        Iterator<String> it = keySet.iterator();
                        while (it.hasNext()) {
                            String text = it.next();
                            if(value.equalsIgnoreCase(text))
                            {
                                cell.setCellValue((String)item.get(text));

                                break;
                            }

                        }
                      }else{
                          cell.setCellValue("");
                      }

                  }
              }
              }
        



            // 输出文件
            FileOutputStream fileOut = new FileOutputStream(targetFilePath);
            wb.write(fileOut);
            fileOut.close();

        } catch (Exception e) {
            bool = false;
            e.printStackTrace();
        }
        return bool;
    }

    public static void main(String[] args) {
      
        Map item = new HashMap();
         item.put("num0","000");
        item.put("num1","1");
        item.put("num2","2");
        item.put("num3","3");
        item.put("num4","4");
        item.put("num5","5");
        item.put("num6","6");

        //d:\\template.xls为Excel模板文件,d:\\test.xls为程序根据Excel模板文件生成的新文件
        replaceModel(item, "d:\\template.xls", "d:\\test.xls");

}

}

 

2
0
分享到:
评论

相关推荐

    读取excel值替换文件内容

    要替换文件内容中的键值对,首先需要读取文件内容到字符串,然后使用正则表达式或其他文本处理方法进行查找替换。假设我们有如下文件内容: ``` key1=value1 key2=value2 ... ``` 我们可以遍历读取到的Excel...

    Java操作Excel详解

    1. **数据类型处理**:如果读取到的数据是字符串类型,则需要对其进行特殊处理,如去除前后空格、替换单引号等,以便于正确地插入到数据库中。 ```java String str = sheet.getCell(0, 1).getContents().trim()....

    java 读excel 写excel 边度边写excel

    本篇文章将深入探讨如何使用Java实现“边读边写”Excel的机制,特别是结合数据库中的数据List填充到Excel指定位置,并讨论替换字符串的相关操作。 首先,Java中读写Excel文件主要依赖于第三方库,如Apache POI和...

    字符串解析+excel保存

    这个过程涵盖了多个知识点,包括字符串操作、正则表达式、数据结构、数据绑定以及Excel文件的读写。 首先,字符串解析通常会用到编程语言内置的字符串函数,例如Python的`split()`或C#的`Split()`方法,来分割字符...

    利用JAVA操作EXCEL文件

    在Java编程中,操作Excel文件是一项常见的任务,特别是在数据分析、报表生成或数据导入导出等场景。Java Excel API(通常指的是jxl库)提供了一种简单的方式来读取和写入Excel文件,支持.xls格式(Excel 2003及之前...

    Java操作Excel解决方案.docx

    // 定义单元格为字符串类型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell.setCellValue("增加值"); // 新建一输出文件流 FileOutputStream fileOut = new FileOutputStream...

    java读取excel简单例子

    每个单元格的数据类型可能不同,如字符串、数字或日期,因此需要处理各种情况: ```java for (int rowIndex = 0; rowIndex (); rowIndex++) { for (int colIndex = 0; colIndex (); colIndex++) { Cell cell = ...

    java 生成Excel,可根据模板格式生成 Excel打印专用 报表

    - 使用Cell对象的`setCellValue(Object value)`方法设置单元格的值,value可以是字符串、数字、日期等。 6. **模板处理**: - 如果有模板,可以先读取模板文件,然后替换其中的数据单元格。 - 使用`...

    kettle常见控件(输入、输出,字段选择、设置变量、记录集连接、值映射、字符串替换、js、Java)的使用案例

    - **文本文件输出**:在处理文本数据时,可以使用“字符串替换”步骤对字段内容进行替换,以满足输出格式要求。 8. JavaScript 和 Java 脚本: - **JavaScript步骤**:允许用户编写自定义的JavaScript代码进行...

    java解析excel表格

    对于单元格数据的读取,我们需要根据单元格类型(CellType)进行不同的处理,例如数值、字符串、日期等: ```java switch (cell.getCellType()) { case NUMERIC: System.out.println(cell.getNumericCellValue())...

    通用的Java工具类,主要包括基础工具类(时间、正则表达式、字符串、随机数等等),excel解析生成、word解析生成、文件操作

    - **字符串工具类**:包含字符串的各种操作,如空判断、拼接、截取、替换、编码解码等。 - **随机数工具类**:可以生成各种类型的随机数,包括整数、浮点数、指定范围内的随机数,甚至自定义概率分布的随机数。 2...

    java excel解析jar包 poi

    每个单元格可以是数值、字符串、日期或其他类型。 3. **读取Excel**:要读取Excel文件,首先创建`Workbook`实例,然后获取对应的`Sheet`,最后遍历`Row`和`Cell`来读取数据。以下是一个简单的示例: ```java File...

    JAVA实现Excel导入数据库

    3. **数据解析**: 读取到的每个单元格数据可能需要进行类型转换,因为POI会将所有数据作为字符串返回。例如,日期、数字和布尔值都需要特殊处理。可以使用`CellType`枚举来判断单元格类型,并进行相应的转换。 4. *...

    华为-华为od题库练习题之字符串分隔.zip

    2. **字符串分割**:使用`split()`函数,可以按照指定的分隔符将字符串切割成多个子串,如Python中的用法。 3. **正则表达式分隔**:通过正则表达式进行复杂的分隔操作,如Java的`Pattern`和`Matcher`,Python的`re...

    java生成excel 文档

    每个Cell可以包含各种数据类型,如字符串、数字、日期等。 - **写入数据**:通过Cell的setCellValue方法,将数据写入到Cell中。 - **保存文件**:最后,你需要将Workbook对象写入到文件系统中,通常使用...

    java利用替换Excel2007中sheet方式导出excel,支持大数据量

    子类`Excel2007WriterImpl.java`可能继承了这个抽象类,并实现了具体的写入逻辑,包括替换Sheet的操作。 在处理大数据量时,一次性加载所有数据可能导致内存溢出。为了解决这个问题,可以采用流式处理或分批写入...

    java操作excel

    Java操作Excel主要是通过Apache POI库来实现的。Apache POI是一个开源项目,它提供了读取和写入Microsoft Office格式文件的能力,包括Excel。在Java中,POI库是处理Excel文件的常用工具,可以创建、修改、读取Excel...

    java生成并下载excel

    对于字符串,同样适用此方法。 4. **处理网络图片**:如果你需要在Excel中插入网络图片,可以使用`Pictures`接口。首先,你需要下载图片到本地,然后将其上传到工作簿中,最后在单元格中引用该图片。具体步骤包括:...

    java读取excel

    接下来,我们遍历每一行(Row)和每一个单元格(Cell),根据单元格的类型(如字符串、数字、布尔等)提取数据,并打印出来。 如果你的Excel文件包含日期或其他特殊类型的单元格,可能需要额外的处理。例如,对于...

    Java Velocity模板引擎,简单字符串生成

    运行上述Java代码后,输出的HTML字符串将替换掉模板中的VTL变量,形成如下内容: ```html 欢迎,张三! 你好,你今年已经30岁了。 ``` 这就是Java Velocity模板引擎的基本使用方法和核心概念。它通过简单易懂...

Global site tag (gtag.js) - Google Analytics