(上面一行暂时不会删除...)
由于上线系统要做国际化,英文翻译,需要把原来的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浮点数的显示格式
}
}
分享到:
相关推荐
- 使用编程语言如Java、Python或在线工具,遍历Excel文件并读取数据,将每行内容转化为Properties格式 - 写入到新的Properties文件中。Java中可以使用`java.util.Properties`类的`store()`方法实现 2. **...
根据给定的信息,本文将详细解释如何将指定的Excel文件中的数据转换为DataTable,并通过代码示例进行说明。 ### 一、将指定Excel文件中的数据转换为DataTable #### 1.1 概述 在实际工作中,我们经常需要处理Excel...
在ASP(Active Server Pages)环境下,将Excel文件转换为数据库文件是常见的数据迁移或整合任务。这涉及到读取Excel数据并将其导入到如Access(.mdb文件)这样的数据库中。以下是一个详细的步骤介绍和相关知识点讲解...
标题中的"PropertiesFileToExcel:Java属性文件到Excel"是一个Java程序,它的主要功能是将`.properties`格式的配置文件转换成易于查看和编辑的Excel电子表格。这种工具在处理多语言翻译项目时尤其有用,因为`....
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,包括如何将图片导入到Excel工作表中以及如何将Excel文件转换为CSV格式。这两个功能在数据分析、报告生成以及数据导出等场景中非常常见。 首先,让我们讨论如何在Excel中插入...
特别地,设置`IMEX=1`可以在导入过程中让Excel文件中的文本字段按照列进行区分,而不是自动转换成数值类型。 ```csharp string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AimFile + ";Extended...
' 将行数据转化为参数并执行命令 Next cmd.Execute conn.Close Set conn = Nothing ``` 这里需要注意的是,数据库连接字符串和数据类型可能会因数据库类型(如Access、SQL Server等)而异,且需根据实际Excel文件...
本文将深入探讨如何使用C#语言将Excel文件转换为JSON格式,这是一个非常实用的技术,特别是在需要将结构化数据导入Web应用程序或者存储到NoSQL数据库时。Excel是一种广泛使用的电子表格工具,而JSON(JavaScript ...
这包括将坐标数据转换成几何对象,并将属性数据与几何数据关联起来。 #### 五、总结 通过以上步骤,可以有效地使用ArcGIS Engine从Excel文件中读取数据,并基于这些数据创建出新的Shapefile。这种技术在GIS项目中...
- `ExtendedProperties`: 表示Excel文件的扩展属性,包括: - `Excel8.0`: 指明了Excel文件的版本。 - `HDR=False`: 表示第一行不是列标题。 - `IMEX=1`: 启用导入模式,可以正确处理文本和数字格式。 2. **...
这个类可能使用了Apache POI或JXL等库来读取和操作Excel文件,然后利用模板引擎(如Thymeleaf或FreeMarker)将数据转化为HTML。 总的来说,这个压缩包提供了一个使用Spring Boot构建的解决方案,能够将Excel文件...
@Bean注解在方法上,声明当前方法的返回值为一个Bean AOP @Aspect 声明是一个切面 拦截规则@After @Before @Around PointCut JoinPoint Spring常用配置 Bean的Scope Singleton ...
导入Excel主要是从Excel文件中读取数据,并将数据转换为程序可以使用的格式。以下是一个导入Excel的示例: ```csharp static string filePath = @"C:\Documents and Settings\Administrator\ѧɼ1.xls"; private ...
4. **导出数据**:将数据库中的数据转换成Excel格式并提供下载。 #### 示例代码解析 ##### 导入Excel数据 本例展示了如何在ASP.NET中实现从Excel文件导入数据到数据库的过程。主要涉及到了以下技术点: - 使用`...
导出GridView到Excel通常涉及将GridView中的数据转换成CSV(逗号分隔值)格式或者直接生成Excel文件。这个过程可以使用System.Web.UI.WebControls.WebParts.GridViewExportHelper类,或者通过创建HTML字符串并模拟...
5. 配置文件:在"excelConfig.properties"中,可能包含了关于Excel文件的位置、数据映射到实体类的规则等信息。这使得程序能够根据配置自动执行转换。 6. 程序入口:"com.wxc.main.MainForCommon"是Java程序的主...