将数据以表格形式进行备份
(1)导入poi的jar包
放入lib下: WebRoot\WEB-INF\lib\poi-3.2-FINAL-20081019.jar
(2)StringBuffer转换为二维数组
//定义一个StringBuffer,以 \r\n 分一维数组,以 \t 分二维数组
StringBuffer strff = new StringBuffer("姓名\t年龄\t性别\r\n小仙女\t18\t女\r\n");
//将StringBuffer数据转换为一维数组:按行记录区分 Object[] dataLine = strff.toString().split("\r\n"); //定义二维数组,将stringBuffer类型的数据转换为二维数组 Object[][] data = new Object[dataLine.length][]; for(int i=0; i<dataLine.length; i++) { //将行数据根据\t拆分,赋值到一维数组的各个列中 data[i] = dataLine[i].toString().split("\t"); }
(3)使用示例一:(容易理解些)
这里会将数据以表格的形式输出,并且数据保存在 F盘下的 123.xls文件 中。
package testPoi; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; 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; public class ExportExcel { public static void main(String[] args) throws FileNotFoundException, IOException { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("table"); //创建table工作薄 Object[][] datas = {{"区域", "总销售额(万元)", "总利润(万元)简单的表格"}, {"江苏省" , 9045, 2256}, {"江苏省" , 9045, 2256}, {"广东省", 3000, 690}}; HSSFRow row; HSSFCell cell; for(int i = 0; i < datas.length; i++) { row = sheet.createRow(i);//创建表格行 for(int j = 0; j < datas[i].length; j++) { cell = row.createCell(j);//根据表格行创建单元格 cell.setCellValue(String.valueOf(datas[i][j])); } } wb.write(new FileOutputStream("f:/123.xls")); System.out.println("hello poi"); } }
(4)使用示例二:
注:这里的数据内容 strff 里面的数据格式类似这种: 111\t222\t333\t444\r\n555\t666\t777\t888r\n
转换为excel数据为:111 222 333 444
555 666 777 888
/** * 将txt类型的数据转换为xls所需数据类型 * @param strff 文件中的数据内容 * @param fileName1 :文件名 * @param filePath :文件路径 * @return * @throws ApplicationException * @throws FileNotFoundException * @throws IOException */ public HSSFWorkbook txtData_To_XlsData(StringBuffer content,String fileName,String filePath) throws ApplicationException { try{ // logger.info("进入xls数据备份"); HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet("table"); //创建table工作薄 HSSFRow row; //定义table表中的行 HSSFCell cell; //定义table表中的列 //将StringBuffer数据转换为一维数组:按行记录区分 Object[] dataLine = content.toString().split("\r\n"); //定义二维数组,将stringBuffer类型的数据转换为二维数组 Object[][] data = new Object[dataLine.length][]; for(int i=0; i<dataLine.length; i++) { //将行数据根据\t拆分,赋值到一维数组的各个列中 data[i] = dataLine[i].toString().split("\t"); } logger.info("开始xls数据备份"); for(int i = 0; i < data.length; i++) { row = sheet.createRow(i);//创建表格行 for(int j = 0; j < data[i].length; j++) { cell = row.createCell(j);//根据表格行创建单元格 cell.setCellValue(String.valueOf(data[i][j])); } } // logger.info("开始xls数据备份,写入文件"); wb.write(new FileOutputStream(filePath+fileName)); // logger.info("开始xls数据备份,写入结束"); return wb; }catch(FileNotFoundException e){ logger.error((new StringBuilder("备份数据异常:文件不存在")).append(e).toString()); throw new ApplicationException(e.getMessage()); } catch (IOException e) { logger.error((new StringBuilder("备份数据异常:IOException")).append(e).toString()); throw new ApplicationException(e.getMessage()); } }
原文地址:https://www.cnblogs.com/DFX339/p/8631136.html
时间: 2024-10-09 23:27:23