/*
* Copyright 2010-2015 Institut Pasteur.
*
* This file is part of Icy.
*
* Icy is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Icy is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Icy. If not, see <http://www.gnu.org/licenses/>.
*/
package icy.file.xls;
import icy.util.XLSUtil;
import java.io.File;
import java.io.IOException;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableImage;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
/**
* @deprecated Use {@link XLSUtil} instead.
*/
@Deprecated
public class XlsManager
{
WritableSheet excelPage = null;
WritableWorkbook excelWorkbook;
/**
* Create a new file, overwritting existing one.
*
* @param file
* @throws IOException
*/
public XlsManager(File file) throws IOException
{
excelWorkbook = Workbook.createWorkbook(file);
// excelPage = excelWorkbook.createSheet("results", 0);
}
/**
* load from existing file
*
* @param file
* @param load
* @throws IOException
* @throws BiffException
*/
public XlsManager(File file, boolean load) throws IOException, BiffException
{
if (load)
{
if (!file.exists())
{
excelWorkbook = Workbook.createWorkbook(file);
}
else
{
excelWorkbook = Workbook.createWorkbook(file, Workbook.getWorkbook(file));
}
}
// FIXME: no else here. Class should be changed now that it can load data.
}
public XlsManager(String file) throws IOException
{
this(new File(file));
}
public void SaveAndClose()
{
try
{
excelWorkbook.write();
excelWorkbook.close();
}
catch (IOException e)
{
System.err.println("Error while recording XLS");
}
catch (WriteException e)
{
System.err.println("Error while recording XLS");
e.printStackTrace();
}
}
/**
* Create a new page. If the page already exists, add an incremented number for distinction.
*
* @param title
*/
public void createNewPage(String title)
{
boolean ok = false;
int counter = 2;
String pageName = title;
while (!ok)
{
if (excelWorkbook.getSheet(pageName) == null)
{
excelPage = excelWorkbook.createSheet(pageName, excelWorkbook.getNumberOfSheets() + 1);
ok = true;
}
pageName = title + " " + counter;
counter++;
}
}
public void setPageName(String name)
{
excelPage.setName(name);
}
public void addImage(WritableImage image)
{
try
{
excelPage.addImage(image);
}
catch (Exception e)
{
System.err.println("Error while writing Xls data (XlsManager.java) File Already open by an other app ?");
}
}
public void setLabel(int x, int y, String texte, Colour background)
// public void setLabel(int x, int y, String texte, Color background)
{
WritableCellFormat wcf = new WritableCellFormat();
try
{
// Colour colour = Colour.getInternalColour( background.getRGB() );
wcf.setBackground(background);
}
catch (WriteException e1)
{
e1.printStackTrace();
}
Label label = new Label(x, y, texte, wcf);
try
{
excelPage.addCell(label);
}
catch (Exception e)
{
System.err.println("Error while writing Xls data (XlsManager.java) File Already open by an other app ?");
}
}
public void setLabel(int x, int y, String texte)
{
Label label = new Label(x, y, texte);
try
{
excelPage.addCell(label);
}
catch (Exception e)
{
System.err.println("Error while writing Xls data (XlsManager.java) File Already open by an other app ?");
}
}
public void setNumber(int x, int y, double n, Colour background)
{
WritableCellFormat wcf = new WritableCellFormat();
try
{
// Colour colour = Colour.getInternalColour( background.getRGB() );
// wcf.setBackground( colour );
wcf.setBackground(background);
}
catch (WriteException e1)
{
e1.printStackTrace();
}
Number number = new Number(x, y, n, wcf);
try
{
excelPage.addCell(number);
}
catch (Exception e)
{
System.err.println("Error while writing Xls data (XlsManager.java) File Already open by an other app ?");
}
}
public void setNumber(int x, int y, double n)
{
Number number = new Number(x, y, n);
try
{
excelPage.addCell(number);
}
catch (Exception e)
{
System.err.println("Error while writing Xls data (XlsManager.java) File Already open by an other app ?");
}
}
public WritableSheet getExcelPage()
{
return excelPage;
}
}