Write Into An Excel File Using Java
In order to write content to an MS Excel sheet you are required to download JExcel APIs from here.
The content of excel.properties file looks like as given below:
package example;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.Locale;
import java.util.Properties;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
public class JExcelExample {
int mCount = 0;
public static void main(String[] args) {
try {
boolean isOutputFolder = false;
JExcelExample jexcel = new JExcelExample();
Properties prop = jexcel.loadProperties();
String sheets = prop.getProperty("org.sheets");
File directory = new File(prop.getProperty("output.folder"));
if (!directory.exists()) {
isOutputFolder = directory.mkdir();
} else {
isOutputFolder = true;
}
if (!isOutputFolder) {
System.out.println("Please provide output folder name");
System.exit(0);
}
String filename = prop.getProperty("output.filename");
WorkbookSettings ws = new WorkbookSettings();
ws.setLocale(new Locale("en", "EN"));
WritableWorkbook workbook = Workbook.createWorkbook(new File(
directory.getAbsolutePath() + "\\" + filename), ws);
int count = Integer.parseInt(sheets);
for (int i = 1; i <= count; i++) {
WritableSheet sheet = workbook.createSheet(prop
.getProperty("org.sheet[" + i + "]"), i);
writeDataSheet(sheet);
}
workbook.write();
workbook.close();
} catch (WriteException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void writeDataSheet(WritableSheet aSheet)
throws WriteException {
JExcelExample jExcelExample = new JExcelExample();
Properties properties = jExcelExample.loadProperties();
WritableFont wf = new WritableFont(WritableFont.ARIAL, 10,
WritableFont.BOLD);
// WritableFont wf2 = new WritableFont(WritableFont.ARIAL, 10,
// WritableFont.NO_BOLD);
WritableCellFormat cf = new WritableCellFormat(wf);
cf.setBackground(Colour.ORANGE);
// WritableCellFormat cf2 = new WritableCellFormat(wf2);
String columnValue = properties.getProperty(aSheet.getName()
+ ".coulumn");
int columns = Integer.parseInt(columnValue);
for (int j = 1; j < columns + 1; j++) {
String coulmnValue = properties.getProperty(aSheet.getName()
+ ".coulumn.value[" + j + "]");
aSheet.addCell(new Label(j - 1, 0, coulmnValue, cf));
}
}
/**
*
* @return
*/
private Properties loadProperties() {
Properties prop = new Properties();
try {
InputStream is = JExcelExample.class.getClassLoader()
.getResourceAsStream("excel.properties");
prop.load(is);
} catch (IOException ioe) {
ioe.printStackTrace();
}
return prop;
}
}
The content of excel.properties file looks like as given below:
org.sheets=2
org.sheet[1]=Employee
org.sheet[2]=Department
Employee.coulumn=7
Department.coulumn=12
#Columns of Employee sheet
Employee.coulumn.value[1]=First Name
Employee.coulumn.value[2]=Last Name
Employee.coulumn.value[3]=Address 1
Employee.coulumn.value[4]=Address 2
Employee.coulumn.value[5]=City
Employee.coulumn.value[6]=State
Employee.coulumn.value[7]=Contact Number
#Columns of Department sheet
Department.coulumn.value[1]=Marketing and Sales
Department.coulumn.value[2]=HR
Department.coulumn.value[3]=Finance
Department.coulumn.value[4]=IT
Department.coulumn.value[5]=Procurement and Inventory
Department.coulumn.value[6]=Legal and Taxation
Department.coulumn.value[7]=Risk Management Office
Department.coulumn.value[8]=Adminstration
Department.coulumn.value[9]=Security
Department.coulumn.value[10]=Logistics
Department.coulumn.value[11]=Communication
Department.coulumn.value[12]=Knowledge Management
#Output XL Sheet path
output.folder=c:\\TestXL
output.filename=output.xls