在我们实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统、银行系统)。或者是:我们已经习惯用Excel打印。
Apache的Jakata项目的POI子项目,目前比较成熟的是HSSF接口,处理MSExcel对象。它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等。
那么,如何利用POI在Excel文档任意单元格写入数据?最近做了个项目,一个人研究了下,现在把代码拿出来和大家分享下!不足之处请前辈们多多指教!
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import javax.imageio.ImageIO;
- import javax.imageio.stream.ImageInputStream;
- import org.apache.poi.hssf.record.PageBreakRecord.Break;
- import org.apache.poi.hssf.usermodel.HSSFCell;
- import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
- import org.apache.poi.hssf.usermodel.HSSFPatriarch;
- import org.apache.poi.hssf.usermodel.HSSFRow;
- import org.apache.poi.hssf.usermodel.HSSFSheet;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.poifs.filesystem.POIFSFileSystem;
- public class ReportBuilder
- {
- public static String outFile_Erro = "Load Template Erro,文件加载失败!!";
- FileOutputStream fileOutputStream = null;
- HSSFWorkbook workbook = null;
- HSSFSheet sheet = null;
- HSSFPatriarch patriarch = null;
- /**
- * @用途:加载一个已经存在的模板,将生成的内容保存到 workbook中
- * @参数:String templateFile:指索要加载的模板的路径,如:"C:/Tamplates/texting-1.xls"
- * @用法:templateFile: String templateFile_Name1 = "C:/Tamplates/texting-1.xls"
- * @author Yangcl
- */
- public void loadTemplate(String templateURL)
- {
- // TODO Auto-generated method stub
- boolean a = templateURL.trim().indexOf(".xls") == -1;
- boolean b = templateURL.trim().indexOf(".XLS") == -1;
- // boolean c = templateURL.trim().indexOf(".xlsx") == -1;
- // boolean d = templateURL.trim().indexOf(".XLSX") == -1;
- if(templateURL == null || templateURL.trim().equals("") )
- {
- //文件不能为空提示
- System.out.println("文件不能为空提示");