`
weixl
  • 浏览: 22981 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

properties文件转化为excel文件

阅读更多
 

     (上面一行暂时不会删除...)  

     由于上线系统要做国际化,英文翻译,需要把原来的porperties文件内容copy到excel中发给翻译公司去做,但由于properties文件太多,而又没有比较好的方法做批量的copy,最后想了想,想了个偷懒的方法:自己写个io来做个读写文件操作。

       因为本身读取properties 文件很简单,读取properties文件中的key和value后,只需要把写入到新生成的excel的两个单元格中就ok了,由于系统调用poi的jar包来做excel文件导出,于是就试了试,这样一个简单的文件转换程序就完成了。只不过中间由于文件比较多,中间好几层文件夹,所以 中间还用了个递归。

       具体实现时候还是baidu了下,poi不是很熟悉...

 

1、首先先把源码包copy一份到c盘的XXX目录里面,然后递归查找非properties文件,删除

 

public class PropertiesToExcel {

    private static int num = 0;

    /**
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {

        System.out.println("begin time at " + new Date());
        File file = new File("c:\\XXX");
        transformProperitesToExcel(file);
        System.out.println("end time at " + new Date());
        export("d:\\test.xls");

    }

 

 

    public static void readPropertiesToExecl(File file, String path) throws IOException {
        // TODO Auto-generated method stub
        Properties p = new Properties();
        InputStream inStream;
        inStream = new FileInputStream(file);
        p.load(inStream);
        // System.out.println(p.getProperty("mail.debug"));
        // System.out.println(p.isEmpty());
        // p.setProperty("pom", "pom123");
        // System.out.println(p.getProperty("pom"));
        // p.clear();
        // p = System.getProperties();
        Enumeration e = p.propertyNames();
        System.out.println(" 开始导出Excel文件 ");
        XLSExport ee = new XLSExport(path);

        int i = 0;
        while (e.hasMoreElements()) {
            String ele = (String) e.nextElement();
            // System.out.println(ele + ":" + p.getProperty(ele));
            ee.createRow(i);
            ee.setCell(0, ele);
            ee.setCell(1, p.getProperty(ele));
            i++;
        }
        try {
            ee.exportXLS(path);    //导出成excel文件
            System.out.println(" 导出Excel文件[成功] ");
        } catch (Exception e1) {
            System.out.println(" 导出Excel文件[失败] ");
            e1.printStackTrace();
        }

    }

 

 

    /**

     * 读取file目录下所有文件

     */

    public static void transformProperitesToExcel(File file) throws IOException {

        if (file.isDirectory()) {
            File[] subFile = file.listFiles();
            if (subFile.length == 0) {
                file.delete();
            }
            for (int i = 0; i < subFile.length; i++) {
                transformProperitesToExcel(subFile[i]);
            }
        } else {
            if ((!file.getName().endsWith(".PROPERTIES") && !file.getName().endsWith(".properties"))) {
                // file.delete();
            } else {
                String path = file.getAbsolutePath().substring(0,
                        file.getAbsolutePath().lastIndexOf('\\'));
                System.out.println(num + " 、转换文件:" + file.getAbsolutePath());
                num++;
                path = path + "\\packageExcel.xls";  //转换后相应的xls文件目录
                // File excelFile = new File(path);
                // if(!excelFile.canRead()){
                // excelFile.createNewFile();
                // }
                readPropertiesToExecl(file, path);
                // export(path);
            }
        }
    }

 

    public static void export(String file) {
        System.out.println(" 开始导出Excel文件 ");
        XLSExport e = new XLSExport(file);
        try {
            e.createRow(0);
            e.setCell(0, " 编号 ");
            e.setCell(1, " 名称 ");
            e.exportXLS(file);
            System.out.println(" 导出Excel文件[成功] ");
        } catch (Exception e1) {
            System.out.println(" 导出Excel文件[失败] ");
            e1.printStackTrace();
        }
    }

}

  

 

 

 

//*************************生成excel文件工具类****************//

 

import  java.io.FileNotFoundException;
import  java.io.FileOutputStream;
import  java.io.IOException;
import  java.util.Calendar;

import  org.apache.poi.hssf.usermodel.HSSFCell;
import  org.apache.poi.hssf.usermodel.HSSFCellStyle;
import  org.apache.poi.hssf.usermodel.HSSFDataFormat;
import  org.apache.poi.hssf.usermodel.HSSFRow;
import  org.apache.poi.hssf.usermodel.HSSFSheet;
import  org.apache.poi.hssf.usermodel.HSSFWorkbook;

/** */ /** 
* 生成导出Excel文件对象
* 
*  @author  John.Zhu
* 
 */ 
 public   class  XLSExport   {

    //  设置cell编码解决中文高位字节截断 
//     private   static   short  XLS_ENCODING  =  HSSFWorkbook.ENCODING_UTF_16;

    //  定制日期格式 
     private   static  String DATE_FORMAT  =   " m/d/yy " ;  //  "m/d/yy h:mm"

    //  定制浮点数格式 
     private   static  String NUMBER_FORMAT  =   " #,##0.00 " ;

    private  String xlsFileName;

    private  HSSFWorkbook workbook;

    private  HSSFSheet sheet;

    private  HSSFRow row;

    /** */ /** 
    * 初始化Excel
    * 
    *  @param  fileName
    *            导出文件名
     */ 
     public  XLSExport(String fileName)   {
        this .xlsFileName  =  fileName;
        this .workbook  =   new  HSSFWorkbook();
        this .sheet  =  workbook.createSheet();
   } 

     /** */ /** 
    * 导出Excel文件
    * 
    *  @throws  XLSException
     */ 
     public   void  exportXLS(String path)  throws  Exception   {
        try    {
           FileOutputStream fOut  =   new  FileOutputStream(path);
           workbook.write(fOut);
           fOut.flush();
           fOut.close();
       }   catch  (FileNotFoundException e)   {
            throw   new  Exception( " 生成导出Excel文件出错! " , e);
       }   catch  (IOException e)   {
            throw   new  Exception( " 写入Excel文件出错! " , e);
       } 

   } 

     /** */ /** 
    * 增加一行
    * 
    *  @param  index
    *            行号
     */ 
     public   void  createRow( int  index)   {
        this .row  =   this .sheet.createRow(index);
   } 

     /** */ /** 
    * 设置单元格
    * 
    *  @param  index
    *            列号
    *  @param  value
    *            单元格填充值
     */ 
     public   void  setCell( int  index, String value)   {
       HSSFCell cell  =   this .row.createCell(( short ) index);
       cell.setCellType(HSSFCell.CELL_TYPE_STRING);
       cell.setCellValue(value);
   } 

     /** */ /** 
    * 设置单元格
    * 
    *  @param  index
    *            列号
    *  @param  value
    *            单元格填充值
     */ 
     public   void  setCell( int  index, Calendar value)   {
       HSSFCell cell  =   this .row.createCell(( short ) index);
//       cell.setEncoding(cell.ENCODING_UTF_16);
       cell.setCellValue(value.getTime());
       HSSFCellStyle cellStyle  =  workbook.createCellStyle();  //  建立新的cell样式 
        cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT));  //  设置cell样式为定制的日期格式 
        cell.setCellStyle(cellStyle);  //  设置该cell日期的显示格式 
    } 

     /** */ /** 
    * 设置单元格
    * 
    *  @param  index
    *            列号
    *  @param  value
    *            单元格填充值
     */ 
     public   void  setCell( int  index,  int  value)   {
       HSSFCell cell  =   this .row.createCell(( short ) index);
       cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
       cell.setCellValue(value);
   } 

     /** */ /** 
    * 设置单元格
    * 
    *  @param  index
    *            列号
    *  @param  value
    *            单元格填充值
     */ 
     public   void  setCell( int  index,  double  value)   {
       HSSFCell cell  =   this .row.createCell(( short ) index);
       cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
       cell.setCellValue(value);
       HSSFCellStyle cellStyle  =  workbook.createCellStyle();  //  建立新的cell样式 
        HSSFDataFormat format  =  workbook.createDataFormat();
       cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT));  //  设置cell样式为定制的浮点数格式 
        cell.setCellStyle(cellStyle);  //  设置该cell浮点数的显示格式 
    } 

}

 

0
0
分享到:
评论

相关推荐

    excel与properties文件相互转换

    - 使用编程语言如Java、Python或在线工具,遍历Excel文件并读取数据,将每行内容转化为Properties格式 - 写入到新的Properties文件中。Java中可以使用`java.util.Properties`类的`store()`方法实现 2. **...

    将指定Excel文件中的数据转换成DataTable

    根据给定的信息,本文将详细解释如何将指定的Excel文件中的数据转换为DataTable,并通过代码示例进行说明。 ### 一、将指定Excel文件中的数据转换为DataTable #### 1.1 概述 在实际工作中,我们经常需要处理Excel...

    ASP实现excel文件到数据库文件的转换

    在ASP(Active Server Pages)环境下,将Excel文件转换为数据库文件是常见的数据迁移或整合任务。这涉及到读取Excel数据并将其导入到如Access(.mdb文件)这样的数据库中。以下是一个详细的步骤介绍和相关知识点讲解...

    PropertiesFileToExcel:Java属性文件到Excel

    标题中的"PropertiesFileToExcel:Java属性文件到Excel"是一个Java程序,它的主要功能是将`.properties`格式的配置文件转换成易于查看和编辑的Excel电子表格。这种工具在处理多语言翻译项目时尤其有用,因为`....

    \vb-excel转换为mdb

    vb-excel转换为mdb Private Sub Text1_DblClick() CDlg.DialogTitle = "打开 EXCEL 文件" CDlg.Filter = "所有 EXCEL 文件|*.xls" CDlg.ShowOpen If CDlg.FileName = "" Then Exit Sub Text1.Text = CDlg....

    C#操作Excel(导入图片,转出CSV文件)

    本主题将深入探讨如何使用C#操作Excel,包括如何将图片导入到Excel工作表中以及如何将Excel文件转换为CSV格式。这两个功能在数据分析、报告生成以及数据导出等场景中非常常见。 首先,让我们讨论如何在Excel中插入...

    C#读取导入Excel值为空解决方法

    特别地,设置`IMEX=1`可以在导入过程中让Excel文件中的文本字段按照列进行区分,而不是自动转换成数值类型。 ```csharp string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AimFile + ";Extended...

    asp上传excel并读取入库

    ' 将行数据转化为参数并执行命令 Next cmd.Execute conn.Close Set conn = Nothing ``` 这里需要注意的是,数据库连接字符串和数据类型可能会因数据库类型(如Access、SQL Server等)而异,且需根据实际Excel文件...

    C#实现excel转json[工具+源码]

    本文将深入探讨如何使用C#语言将Excel文件转换为JSON格式,这是一个非常实用的技术,特别是在需要将结构化数据导入Web应用程序或者存储到NoSQL数据库时。Excel是一种广泛使用的电子表格工具,而JSON(JavaScript ...

    ArcGIS Engine根据Excel表格建立Shp文件

    这包括将坐标数据转换成几何对象,并将属性数据与几何数据关联起来。 #### 五、总结 通过以上步骤,可以有效地使用ArcGIS Engine从Excel文件中读取数据,并基于这些数据创建出新的Shapefile。这种技术在GIS项目中...

    读取excel到datatable

    - `ExtendedProperties`: 表示Excel文件的扩展属性,包括: - `Excel8.0`: 指明了Excel文件的版本。 - `HDR=False`: 表示第一行不是列标题。 - `IMEX=1`: 启用导入模式,可以正确处理文本和数字格式。 2. **...

    ExcelToHtml.zip

    这个类可能使用了Apache POI或JXL等库来读取和操作Excel文件,然后利用模板引擎(如Thymeleaf或FreeMarker)将数据转化为HTML。 总的来说,这个压缩包提供了一个使用Spring Boot构建的解决方案,能够将Excel文件...

    springboot学习思维笔记.xmind

    @Bean注解在方法上,声明当前方法的返回值为一个Bean AOP @Aspect 声明是一个切面 拦截规则@After @Before @Around PointCut JoinPoint Spring常用配置 Bean的Scope Singleton ...

    导入导出excel C#

    导入Excel主要是从Excel文件中读取数据,并将数据转换为程序可以使用的格式。以下是一个导入Excel的示例: ```csharp static string filePath = @"C:\Documents and Settings\Administrator\ѧɼ1.xls"; private ...

    ASP.NET中实现EXCEL导入和导出

    4. **导出数据**:将数据库中的数据转换成Excel格式并提供下载。 #### 示例代码解析 ##### 导入Excel数据 本例展示了如何在ASP.NET中实现从Excel文件导入数据到数据库的过程。主要涉及到了以下技术点: - 使用`...

    GridView和Excel的导入导出

    导出GridView到Excel通常涉及将GridView中的数据转换成CSV(逗号分隔值)格式或者直接生成Excel文件。这个过程可以使用System.Web.UI.WebControls.WebParts.GridViewExportHelper类,或者通过创建HTML字符串并模拟...

    Excel转sql(只需要生成实体类即可)

    5. 配置文件:在"excelConfig.properties"中,可能包含了关于Excel文件的位置、数据映射到实体类的规则等信息。这使得程序能够根据配置自动执行转换。 6. 程序入口:"com.wxc.main.MainForCommon"是Java程序的主...

Global site tag (gtag.js) - Google Analytics