请教一下,在java中如何来直接打印一个excel文件,也就是不打开这个excel文件 直接打印,
在baidu+google搜索了很长时间没有什么发现,好像是不太好实现的,不知道有没有这方面经验的朋友介绍一下;有例子更好了
谢谢……

解决方案 »

  1.   

    java直接打印的话,如何体现出来是按excel的格式设计的呢,你直接打印出来,格式就是WEB网页的格式,跟直接打excel也没有什么两样
      

  2.   

    你可以在后台打开啊,就是虽然打开,但是并没有显示出来。
    如果不打开就打印,感觉上思路有些不对,因为这样的话,就意味着要自己写程序读Excel文件的格式了啊。
      

  3.   

    多谢楼上两位朋友,我的意思就是要保证还是excel的格式,也就是通过java程序调用excel的打印功能,不知道可行不?
    楼上朋友说后台打开,具体怎么操作能不能给个例子? 谢了
      

  4.   

    感觉不打开EXCEL直接打印自己写方法还是很困难的,看有没有什么第3方的软件吧。
    我印象中有能用JAVA编辑EXCEL的第3方控件。
      

  5.   

    编辑读写excel的有,但是就不支持打印的功能,poi这个包我也没研究太明白,读写是没问题,好像打印也不行
      

  6.   

    package myexcel.jxl.base;import jxl.write.WritableWorkbook;
    import jxl.Workbook;
    import java.io.File;
    import java.io.*;
    import jxl.write.WritableSheet;
    import jxl.write.Label;
    import jxl.write.Number;
    import jxl.write.*;
    import jxl.format.UnderlineStyle;
    import jxl.format.PageOrientation;
    import jxl.format.PaperSize;
    import java.sql.Date;
    import jxl.biff.EmptyCell;public class Creatxls {
        public Creatxls() {
        }    public static void main(String[] args){
            WritableWorkbook myexcel=null;
            try {
                myexcel = Workbook.createWorkbook(new File("我的EXCEL.xls"));
            } catch (IOException ex) {
            }        WritableSheet mysheet=myexcel.createSheet("第一页",0);        //合并单元格
            try {
                mysheet.mergeCells(10, 10, 13, 13);
            } catch (WriteException ex4) {
            }        //设置打印属性
            //第一个参数为方向,第二个为纸张大小,第三个为设置页眉的高度,第四个设置页脚的高度
            mysheet.setPageSetup(PageOrientation.LANDSCAPE,PaperSize.A5,1.5,2.0);        Label mylabel=new Label(0,0,"wuwenjun");
            WritableFont font=new WritableFont(WritableFont.TIMES, 18,
                                             WritableFont.BOLD, true,UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
            WritableCellFormat wcf=new WritableCellFormat(font);
            Label label=new Label(3,0,"彩色字",wcf);
            //设置日期格式
            jxl.write.DateFormat df=new DateFormat("yyyy-mm-dd");
            jxl.write.WritableCellFormat wcfD = new jxl.write.WritableCellFormat(df);
            Date dd=new Date(System.currentTimeMillis());
            DateTime mydate=new DateTime(5,5,dd,wcfD);
            //定义样式
            WritableCellFeatures ewcf=new WritableCellFeatures();
            ewcf.setComment("wuwenjun");
            WritableCellFormat ecf=new  WritableCellFormat();
            try {
                ecf.setBackground(Colour.RED);
            } catch (WriteException ex3) {
            }        //blank
            jxl.write.Blank blank=new Blank(6,6);
            blank.setCellFeatures(ewcf);
            blank.setCellFormat(ecf);        //emptycell
            EmptyCell emptycell=new EmptyCell(7,7);
            emptycell.setCellFeatures(ewcf);
            emptycell.setCellFormat(ecf);
            //设置数字格式
            jxl.write.NumberFormat nf = new jxl.write.NumberFormat("###,###,###,###,###.##");
            jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
            //设置单元格的边框样式
            try {
                wcfN.setBorder(Border.ALL, BorderLineStyle.THIN);
            } catch (WriteException ex1) {
            }        Number mynumber=new Number(3,3,56566454.1212121,wcfN);
            try {
                mysheet.addCell(mylabel);
                mysheet.addCell(mynumber);
                mysheet.addCell(label);
                mysheet.addCell(mydate);
                mysheet.addCell(blank);
                mysheet.addCell(emptycell);            myexcel.write();
                if(myexcel!=null)
                    myexcel.close();
                }
              catch (WriteException ex2) {
              }
              catch (IOException ex2) {
              }
        }
    }
      

  7.   

    楼上朋友提供的也只是读写excel文件吧?JXL包支持直接打印吗?
    下载了看看
      

  8.   

    如果这实现了,那么web打印估计就不成问题了...