Boa tarde pessoal do GUJ, vou explicar qual problema estou enfrentando:
tenho dois arquivos a.xls e b.xls que possuem 2 sheets com colunas e/ou linhas com merge e preciso copiar estes sheets para um mesmo arquivo juncao.xls onde existe um macro que auto dimenciona as colunas quando o arquivo é aberto.
:?:Alguem saberia de uma forma de copiar um sheet de um Workbook para outro? :?:
aguardo seus posts, obrigado.
[color=darkblue] Você terá que ler os arquivos e copiá-los em seu novo arquivo[/color]
http://poi.apache.org/hssf/how-to.html
:?:Ok Metaleiro,
eu ja havia investigado soluções neste site mas não existe referencia de como se copiar um Sheet e tambem de como incluir no novo arquivo.
esta documentação apenas mostra como se construir um Workbook do zero ou modificar um ja existente, mas estas modificações não constam copia ou inclusão de um novo sheet ja existente.
eu verifiquei a documentação e não encontrei métodos para a criação de um sheet passando como parâmetro um sheet ja existente.
alguem sabe se isto é possivel ?
[quote=cheek666] :?:Ok Metaleiro,
eu ja havia investigado soluções neste site mas não existe referencia de como se copiar um Sheet e tambem de como incluir no novo arquivo.
[color=darkblue]
Reading or modifying an existing file
[/color]
esta documentação apenas mostra como se construir um Workbook do zero ou modificar um ja existente, mas estas modificações não constam copia ou inclusão de um novo sheet ja existente.
[color=darkblue]
From there you have access to all of the high level model objects through their assessor methods (workbook.getSheet(sheetNum), sheet.getRow(rownum), etc).
When you are done modifying cells just call workbook.write(outputstream) just as you did above.
[/color]
eu verifiquei a documentação e não encontrei métodos para a criação de um sheet passando como parâmetro um sheet ja existente.
[color=darkblue]
An example of this can be seen in org.apache.poi.hssf.dev.HSSF.
[/color]
alguem sabe se isto é possivel ?
Se pode ler e modificar o arquivo nada te impede de ler e criar um arquivo novo: [/quote]
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class POISample{
public static void main(String[] args){
FileInputStream in = null;
HSSFWorkbook workbook = null;
try{
in = new FileInputStream("sample.xls");
POIFSFileSystem fs = new POIFSFileSystem(in);
workbook = new HSSFWorkbook(fs);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try{
in.close();
}catch (IOException e){
System.out.println(e.toString());
}
}
workbook.cloneSheet(0);
workbook.cloneSheet(1);
FileOutputStream out = null;
try{
out = new FileOutputStream("sample.xls");
workbook.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
[color=darkblue]
Segue mais um link com um exemplo:
[/color]
http://kickjava.com/src/org/apache/poi/hssf/usermodel/TestCloneSheet.java.htm[color=darkblue] [/color]