Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java	(revision 2948)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/StructuralUnitProperty.java	(revision 2949)
@@ -27,6 +27,7 @@
 //
 package org.txm.searchengine.cqp.corpus;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -36,7 +37,9 @@
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.searchengine.cqp.AbstractCqiClient;
 import org.txm.searchengine.cqp.clientExceptions.CqiClientException;
+import org.txm.searchengine.cqp.clientExceptions.UnexpectedAnswerException;
 import org.txm.searchengine.cqp.corpus.query.CQLQuery;
+import org.txm.searchengine.cqp.serverException.CqiServerError;
 import org.txm.utils.logger.Log;
 
 /**
@@ -298,6 +301,14 @@
 		
 		return null;
 	}
+
+	public String cpos2Str(int position) throws UnexpectedAnswerException, IOException, CqiServerError {
+		AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient();
+		return cqiClient.getSingleData(this, new int[] {position}).get(0);
+	}
 	
-	
+	public String[] cpos2Str(int[] positions) throws UnexpectedAnswerException, IOException, CqiServerError {
+		AbstractCqiClient cqiClient = CorpusManager.getCorpusManager().getCqiClient();
+		return cqiClient.getSingleData(this, positions).toArray(new String[positions.length]);
+	}
 }
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/WordProperty.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/WordProperty.java	(revision 2948)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/WordProperty.java	(revision 2949)
@@ -53,6 +53,10 @@
 		return CorpusManager.getCorpusManager().getCqiClient().cpos2Id(this.getQualifiedName(), positions);
 	}
 	
+	public String cpos2Str(int position) throws UnexpectedAnswerException, IOException, CqiServerError {
+		return CorpusManager.getCorpusManager().getCqiClient().cpos2Str(this.getQualifiedName(), new int[] {position})[0];
+	}
+	
 	public String[] cpos2Str(int[] positions) throws UnexpectedAnswerException, IOException, CqiServerError {
 		return CorpusManager.getCorpusManager().getCqiClient().cpos2Str(this.getQualifiedName(), positions);
 	}
Index: tmp/org.txm.libs.msoffice/src/org/txm/libs/msoffice/ReadExcel.java
===================================================================
--- tmp/org.txm.libs.msoffice/src/org/txm/libs/msoffice/ReadExcel.java	(revision 2948)
+++ tmp/org.txm.libs.msoffice/src/org/txm/libs/msoffice/ReadExcel.java	(revision 2949)
@@ -4,9 +4,11 @@
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
@@ -21,25 +23,25 @@
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 public class ReadExcel {
-	
+
 	Workbook wb = null;
-	
+
 	Sheet ws = null;
-	
+
 	String[] header = null;
-	
+
 	HashMap<String, String> record = null;
-	
+
 	int iRow = 0;
-	
+
 	int nRows;
-	
+
 	private File tableFile;
-	
+
 	public ReadExcel(File tableFile, String sheetName) throws EncryptedDocumentException, InvalidFormatException, IOException {
-		
+
 		this.tableFile = tableFile;
-		
+
 		if (tableFile.exists() && tableFile.length() > 0) {
 			wb = WorkbookFactory.create(tableFile);
 			if (sheetName == null || sheetName.length() == 0) {
@@ -51,7 +53,7 @@
 					ws = wb.getSheetAt(0);
 				}
 			}
-			
+
 			nRows = ws.getPhysicalNumberOfRows();
 		}
 		else {
@@ -59,7 +61,7 @@
 			ws = wb.createSheet();
 		}
 	}
-	
+
 	/**
 	 * one rule (regex test) per column
 	 * all lines are processed
@@ -70,7 +72,7 @@
 		Row headers = ws.getRow(0);
 		if (headers == null) return false;
 		int colMax = headers.getLastCellNum();
-		
+
 		ArrayList<Integer> columnIdxToTest = new ArrayList<>();
 		ArrayList<String> columnsTest = new ArrayList<>();
 		for (int colIndex = 0; colIndex < colMax; colIndex++) {
@@ -83,19 +85,19 @@
 				}
 			}
 		}
-		
+
 		if (columnIdxToTest.size() == 0) {
 			System.out.println("Error: no column found with name=" + rules.keySet());
 			return false;
 		}
-		
+
 		ArrayList<Integer> removed = new ArrayList<>();
 		for (int rowIndex = 0; rowIndex < nRows; rowIndex++) {
 			Row row = ws.getRow(rowIndex);
 			if (row == null) continue;
 			for (int i = 0; i < columnIdxToTest.size(); i++) {
 				int colIndex = columnIdxToTest.get(i);
-				
+
 				Cell cell = row.getCell(colIndex);
 				if (cell != null) {
 					String value = cellToString(cell).trim();
@@ -107,16 +109,16 @@
 				}
 			}
 		}
-		
+
 		// TODO very slow when there is a lot of lines
 		for (int rowIndex : removed) {
 			ws.shiftRows(rowIndex + 1, nRows, -1);
 			nRows--;
 		}
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * search and replace lines utils
 	 * 
@@ -133,10 +135,10 @@
 		if (!extractTo(ws2, lineRules, columnsSelection)) {
 			return false;
 		}
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * extract lines and columns following rules.
 	 * 
@@ -153,10 +155,10 @@
 	public boolean copyColumns(HashMap<String, String[]> columnsToCopy) throws EncryptedDocumentException, InvalidFormatException, IOException {
 		Row headers = ws.getRow(0);
 		if (headers == null) return false;
-		
+
 		int colMax = headers.getLastCellNum();
 		int nRows = ws.getPhysicalNumberOfRows();
-		
+
 		HashMap<String, Integer> searchColumns = new HashMap<>();
 		for (int colIndex = 0; colIndex < colMax; colIndex++) {
 			Cell cell = headers.getCell(colIndex);
@@ -167,7 +169,7 @@
 				}
 			}
 		}
-		
+
 		if (searchColumns.keySet().size() != columnsToCopy.keySet().size()) {
 			System.out.println("Error: not all columns found=" + searchColumns.keySet() + " of " + columnsToCopy.keySet());
 			ArrayList<String> notFound = new ArrayList<>(columnsToCopy.keySet());
@@ -175,22 +177,22 @@
 			System.out.println("NOT FOUND: " + notFound);
 			return false;
 		}
-		
+
 		System.out.println("N Rows to update: " + nRows);
 		int nRowWritten = 0;
-		
+
 		for (int rowIndex = 0; rowIndex < nRows; rowIndex++) { // update all rows, starting from the second row (first row is the header)
 			Row row = ws.getRow(rowIndex);
 			if (row == null) continue;
-			
+
 			int icol = 0;
 			for (String col : columnsToCopy.keySet()) {
 				for (String newcol : columnsToCopy.get(col)) {
 					int colIndex = searchColumns.get(col);
-					
+
 					Cell cell = row.getCell(colIndex);
 					if (cell != null) {
-						
+
 						Cell newCell = row.createCell(colMax + icol);
 						if (rowIndex == 0) {
 							newCell.setCellValue(newcol); // first column must be renamed
@@ -202,15 +204,102 @@
 					icol++;
 				}
 			}
-			
+
 			nRowWritten++;
 		}
-		
+
 		System.out.println("" + nRowWritten + " rows updated.");
-		
+
 		return nRowWritten > 0;
 	}
-	
+
+	public boolean formatDateColumns(List<String> columns, String dateformat) {
+		try {
+			java.text.SimpleDateFormat parser = new java.text.SimpleDateFormat(dateformat);
+			
+			Row headers = ws.getRow(0);
+			if (headers == null) return false;
+			int colMax = headers.getLastCellNum(); // current number of columns
+			int nRows = ws.getPhysicalNumberOfRows();
+			
+			HashMap<String, Integer> searchColumns = new HashMap<>();
+			for (int colIndex = 0; colIndex < colMax; colIndex++) {
+				Cell cell = headers.getCell(colIndex);
+				if (cell != null) {
+					String value = cellToString(cell).trim();
+					if (columns.contains(value)) {
+						searchColumns.put(value, colIndex);
+					}
+				}
+			}
+
+			if (searchColumns.keySet().size() != columns.size()) {
+				System.out.println("Error: not all columns found=" + searchColumns.keySet() + " of " + columns);
+				ArrayList<String> notFound = new ArrayList<>(columns);
+				notFound.removeAll(searchColumns.keySet());
+				System.out.println("NOT FOUND: " + notFound);
+				return false;
+			}
+			
+			for (String column : columns) {
+
+				int colIndex = searchColumns.get(column);
+				for (int rowIndex = 0; rowIndex < nRows; rowIndex++) { // update all rows, starting from the second row (first row is the header)
+					Row row = ws.getRow(rowIndex);
+					if (row == null) continue;
+
+					Cell cell = row.getCell(colIndex);
+					int icol = 0; // number of columns written for this row
+
+					if (cell != null) {
+
+						Cell newCell = null;
+						if (rowIndex == 0) { // header line
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(column+"-joursemaine"); // first row must be renamed
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(column+"-jour"); // first row must be renamed
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(column+"-moi"); // first row must be renamed
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(column+"-annee"); // first row must be renamed
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(column+"-tri"); // first row must be renamed
+						}
+						else {
+							
+							String rawValue = cellToString(cell).trim();
+							Date date = parser.parse(rawValue);
+							String joursemaine = new java.text.SimpleDateFormat("EEEE").format(date);
+							String jour = new java.text.SimpleDateFormat("dd").format(date);
+							String moi = new java.text.SimpleDateFormat("MM").format(date);
+							String annee = new java.text.SimpleDateFormat("yyyy").format(date);
+							String tri = new java.text.SimpleDateFormat("yyyy-MM-dd").format(date);
+							
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(joursemaine);
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(jour);
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(moi);
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(annee);
+							newCell = row.createCell(colMax + icol++);
+							newCell.setCellValue(tri);
+						}
+					}
+				}
+				
+				colMax += 5; // 5 new columns written
+			}
+		} catch (ParseException e) {
+			System.out.println("Error: while formating date columns: "+e);
+			e.printStackTrace();
+			return false;
+		}
+		return true;
+	}
+
 	/**
 	 * extract lines and columns following rules.
 	 * 
@@ -227,10 +316,10 @@
 	public boolean searchAndReplaceInLines(HashMap<String, String[]> searchAndReplaceRules) throws EncryptedDocumentException, InvalidFormatException, IOException {
 		Row headers = ws.getRow(0);
 		if (headers == null) return false;
-		
+
 		int colMax = headers.getLastCellNum();
 		int nRows = ws.getPhysicalNumberOfRows();
-		
+
 		HashMap<String, Integer> searchColumns = new HashMap<>();
 		for (int colIndex = 0; colIndex < colMax; colIndex++) {
 			Cell cell = headers.getCell(colIndex);
@@ -241,7 +330,7 @@
 				}
 			}
 		}
-		
+
 		if (searchColumns.keySet().size() != searchAndReplaceRules.keySet().size()) {
 			System.out.println("Error: not all columns found=" + searchColumns.keySet() + " of " + searchAndReplaceRules.keySet());
 			ArrayList<String> notFound = new ArrayList<>(searchAndReplaceRules.keySet());
@@ -249,18 +338,18 @@
 			System.out.println("NOT FOUND: " + notFound);
 			return false;
 		}
-		
+
 		System.out.println("N Rows to update: " + nRows);
 		int nRowWritten = 0;
-		
+
 		for (int rowIndex = 0; rowIndex < nRows; rowIndex++) { // update all rows, starting from the second row (first row is the header)
 			Row row = ws.getRow(rowIndex);
 			if (row == null) continue;
-			
+
 			boolean change = false;
 			for (String col : searchAndReplaceRules.keySet()) {
 				int colIndex = searchColumns.get(col);
-				
+
 				Cell cell = row.getCell(colIndex);
 				if (cell != null) {
 					String value = cellToString(cell).trim();
@@ -272,17 +361,17 @@
 					}
 				}
 			}
-			
+
 			if (change) {
 				nRowWritten++;
 			}
 		}
-		
+
 		System.out.println("" + nRowWritten + " rows updated.");
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * one rule (regex test) per column
 	 * all lines are processed
@@ -295,9 +384,9 @@
 	public boolean extractTo(Sheet ws2, HashMap<String, String> lineRules, List<String> columnsSelection) throws EncryptedDocumentException, InvalidFormatException, IOException {
 		Row headers = ws.getRow(0);
 		if (headers == null) return false;
-		
+
 		int colMax = headers.getLastCellNum();
-		
+
 		ArrayList<Integer> columnIdxToTest = new ArrayList<>();
 		ArrayList<Integer> columnIdxToWrite = new ArrayList<>();
 		ArrayList<String> columns = new ArrayList<>();
@@ -311,18 +400,18 @@
 					columnIdxToTest.add(colIndex);
 					columnsTest.add(lineRules.get(value));
 				}
-				
+
 				if (columnsSelection.contains(value)) {
 					columnIdxToWrite.add(colIndex);
 				}
 			}
 		}
-		
+
 		if (columnIdxToTest.size() == 0) {
 			System.out.println("Error: no column found with name=" + lineRules.keySet());
 			return false;
 		}
-		
+
 		if (columnIdxToWrite.size() != columnsSelection.size()) {
 			System.out.println("Error: not all columns found=" + columnIdxToWrite + " of " + columnsSelection);
 			ArrayList<String> notFound = new ArrayList<>(columnsSelection);
@@ -330,7 +419,7 @@
 			System.out.println("NOT FOUND: " + notFound);
 			return false;
 		}
-		
+
 		Row row2 = ws2.createRow(0);
 		int nCell = 0;
 		for (int iCol : columnIdxToWrite) {
@@ -338,19 +427,19 @@
 			cell2.setCellValue(cellToString(headers.getCell(iCol)).trim());
 			nCell++;
 		}
-		
+
 		int nRowWritten = 1;
 		for (int rowIndex = 0; rowIndex < nRows; rowIndex++) {
 			Row row = ws.getRow(rowIndex);
 			if (row == null) continue;
 			for (int i = 0; i < columnIdxToTest.size(); i++) {
 				int colIndex = columnIdxToTest.get(i);
-				
+
 				Cell cell = row.getCell(colIndex);
 				if (cell != null) {
 					String value = cellToString(cell).trim();
 					if (value.matches(columnsTest.get(i))) {
-						
+
 						// write new line in Sheet ws2
 						row2 = ws2.createRow(nRowWritten);
 						nCell = 0;
@@ -360,16 +449,16 @@
 							nCell++;
 						}
 						nRowWritten++;
-						
+
 						break; // next row
 					}
 				}
 			}
 		}
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * 
 	 * @param rules String:old column name -> String:new column name
@@ -377,7 +466,7 @@
 	private boolean renameColumns(HashMap<String, String> rules) {
 		Row headers = ws.getRow(0);
 		if (headers == null) return false;
-		
+
 		int colMax = headers.getLastCellNum();
 		for (int colIndex = 0; colIndex < colMax; colIndex++) {
 			Cell cell = headers.getCell(colIndex);
@@ -391,37 +480,37 @@
 		}
 		return true;
 	}
-	
+
 	public boolean save() throws IOException {
 		return saveAs(tableFile);
 	}
-	
+
 	public boolean saveAs(File newTableFile) throws IOException {
 		BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(newTableFile, false));
 		wb.write(writer);
 		writer.close();
 		return true;
 	}
-	
+
 	public boolean readHeaders() {
-		
+
 		if (nRows == 0) {
 			header = new String[0];
 			return header != null;
 		}
-		
+
 		Row firstRow = ws.getRow(0);
 		int colMax = firstRow.getLastCellNum();
-		
+
 		header = new String[colMax];
 		for (int it = 0; it < colMax; it++) {
 			header[it] = firstRow.getCell(it).getStringCellValue();
 		}
-		
+
 		if (iRow == 0) iRow = 1; // skip first line
 		return true;
 	}
-	
+
 	public boolean readRecord() {
 		if (iRow < nRows) {
 			_getRecord();
@@ -433,25 +522,25 @@
 			return false;
 		}
 	}
-	
+
 	public String[] getHeaders() {
 		return header;
 	}
-	
+
 	public HashMap<String, String> getRecord() {
 		return record;
 	}
-	
+
 	public String get(String h) {
 		if (record == null) return null;
-		
+
 		return record.get(h);
 	}
-	
+
 	protected void _getRecord() {
 		record = new HashMap<>();
 		Row row = ws.getRow(iRow);
-		
+
 		for (int colIndex = 0; colIndex < header.length; colIndex++) {
 			String col = header[colIndex];
 			Cell cell = row.getCell(colIndex);
@@ -468,15 +557,15 @@
 				record.put(col, "");
 			}
 		}
-		
+
 		for (String k : record.keySet())
 			if (record.get(k) == null) System.out.println("ERROR null value with " + k);
 	}
-	
+
 	public void close() throws IOException {
 		if (wb != null) wb.close();
 	}
-	
+
 	/**
 	 * 
 	 * @param inputFile
@@ -484,14 +573,14 @@
 	 * @return list of lines (line = list of cells) with values converted to String - the file is completely read
 	 */
 	public static ArrayList<ArrayList<String>> toTable(File inputFile, String sheetName) {
-		
+
 		ArrayList<ArrayList<String>> data = new ArrayList<>();
-		
+
 		if (!inputFile.canRead()) {
 			System.out.println("** Excel2XML: '" + inputFile.getName() + "' file not readable. Aborting.");
 			return data;
 		}
-		
+
 		try {
 			Workbook wb = WorkbookFactory.create(inputFile);
 			Sheet ws;
@@ -504,23 +593,23 @@
 					ws = wb.getSheetAt(0);
 				}
 			}
-			
+
 			if (ws == null) {
 				System.out.println("** Excel2XML: no sheet found. Aborting.");
 				return data;
 			}
-			
+
 			int nRows = ws.getPhysicalNumberOfRows();
 			if (nRows == 0) return null;
-			
+
 			Row firstRow = ws.getRow(0);
 			int colMax = firstRow.getLastCellNum();
-			
+
 			ArrayList<String> headers = new ArrayList<>();
 			for (int it = 0; it < colMax; it++) {
 				headers.add(firstRow.getCell(it).getStringCellValue());
 			}
-			
+
 			for (int rowIndex = 0; rowIndex < nRows; rowIndex++) {
 				Row row = ws.getRow(rowIndex);
 				ArrayList<String> dataLine = new ArrayList<>();
@@ -543,10 +632,10 @@
 			e.printStackTrace();
 			return null;
 		}
-		
+
 		return data;
 	}
-	
+
 	/**
 	 * 
 	 * @param cell. If null returns ""
@@ -554,33 +643,33 @@
 	 */
 	public static String cellToString(Cell cell) {
 		if (cell == null) return "";
-		
+
 		switch (cell.getCellTypeEnum()) {
-			case FORMULA:
-				return "#formulla";
-			case NUMERIC:
-				if (DateUtil.isCellDateFormatted(cell)) {
-					SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
-					return dateFormat.format(cell.getDateCellValue());
-				}
-				else {
-					Double value = cell.getNumericCellValue();
-					return value.toString();
-				}
-			case STRING:
-				return cell.getStringCellValue();
-			case BLANK:
-				return "";
-			case BOOLEAN:
-				return "" + cell.getBooleanCellValue();
-			case ERROR:
-				return "#error";
-			default:
-				return "#typeerror";
+		case FORMULA:
+			return "#formulla";
+		case NUMERIC:
+			if (DateUtil.isCellDateFormatted(cell)) {
+				SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
+				return dateFormat.format(cell.getDateCellValue());
+			}
+			else {
+				Double value = cell.getNumericCellValue();
+				return value.toString();
+			}
+		case STRING:
+			return cell.getStringCellValue();
+		case BLANK:
+			return "";
+		case BOOLEAN:
+			return "" + cell.getBooleanCellValue();
+		case ERROR:
+			return "#error";
+		default:
+			return "#typeerror";
 		}
 	}
-	
-	
+
+
 	public static void main(String[] args) throws Exception {
 		File tableFile = new File("/home/mdecorde/Téléchargements/Requêtes_SVO-SOV.xlsx");
 		// ReadExcel excel = new ReadExcel(tableFile, null);
@@ -589,7 +678,7 @@
 			System.out.println(line);
 		}
 	}
-	
+
 	public static void mainAF(String[] args) throws Exception {
 		// ArrayList<ArrayList<String>> data = toTable(new File("/home/mdecorde/xml/ruscorpora1m-test/metadata.xlsx"), null);
 		// if (data.size() == 0) {
@@ -597,13 +686,13 @@
 		// } else {
 		// System.out.println(data);
 		// }
-		
+
 		File tableFile = new File("/home/mdecorde/TEMP/ANTRACT/AF/all.xlsx");
 		File table2File = null;
-		
+
 		System.out.println("open...");
 		ReadExcel excel = new ReadExcel(tableFile, null);
-		
+
 		HashMap<String, String> lineRules = new HashMap<>(); // line tests to select line to keep
 		List<String> columnsSelection; // list of columns to keep
 		HashMap<String, String> columnsToCopy = new HashMap<>();
@@ -621,7 +710,7 @@
 		// columnsToCopy.put("Titre propre", "title"); // not working yet
 		// columnsToCopy.put("Date de diffusion", "textorder"); // not working yet
 		// searchAndReplaceRules.put("textorder", new String[] {"../../....", "$3$2$1"}); // not working yet
-		
+
 		// sujets
 		table2File = new File("/home/mdecorde/TEMP/ANTRACT/AF/sujets.xlsx");
 		columnsSelection = Arrays.asList(
@@ -630,23 +719,23 @@
 				"Nom fichier segmenté (info)", "antract_video", "antract_debut", "antract_fin", "antract_duree", "antract_tc_type", "antract_tc_date",
 				"Résumé", "Séquences", "Descripteurs (Aff. Lig.)", "Générique (Aff. Lig.)");
 		lineRules.put("Type de notice", "Notice sujet");
-		
+
 		table2File.delete();
 		ReadExcel excel2 = new ReadExcel(table2File, null);
 		if (!excel.extractTo(excel2, lineRules, columnsSelection)) {
 			System.out.println("FAIL");
 			return;
 		}
-		
+
 		System.out.println("copying column: " + columnsToCopy.size());
 		// excel2.copyColumns(columnsToCopy);
-		
+
 		System.out.println("search&replace column: " + searchAndReplaceRules.size());
 		// excel2.searchAndReplaceInLines(searchAndReplaceRules);
-		
+
 		System.out.println("renaming column: " + columnsToRenameRules.size());
 		excel2.renameColumns(columnsToRenameRules);
-		
+
 		System.out.println("saving&closing...");
 		excel2.save();
 		excel2.close();
