⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jpanelprint.java

📁 将table数据生成XLS文件
💻 JAVA
字号:
package printtable;

import java.awt.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.print.*;
import javax.swing.table.*;
import com.borland.jbcl.layout.*;
import java.util.*;
import java.awt.font.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.print.*;
import javax.print.ServiceUI;
import javax.print.attribute.*;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFHeader;
import org.apache.poi.hssf.usermodel.HSSFFooter;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import java.io.*;
import org.apache.poi.hssf.util.Region;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class JPanelPrint
    extends JPanel
    implements ActionListener, Printable
{
    BorderLayout borderLayout1 = new BorderLayout();
    DefaultTableModel mTable = new DefaultTableModel();
    JTable jTable1 = new JTable(mTable);

    private String[] jTableColumnNamesArchType = {
        "缂栧彿", "鍚嶇О"};

    JPanel jPanel1 = new JPanel();
    XYLayout xYLayout1 = new XYLayout();
    JScrollPane jScrollPane1 = new JScrollPane();
    JPanel jPanel3 = new JPanel();
    BorderLayout borderLayout2 = new BorderLayout();
    XYLayout xYLayout4 = new XYLayout();
    JButton jButtonPrint = new JButton();
    JButton jButtonView = new JButton();
    BorderLayout borderLayout3 = new BorderLayout();

    private JTextField text;
    private PageFormat pageFormat;
    private PrintRequestAttributeSet attributes;

    private static final int WIDTH = 300;
    private static final int HEIGHT = 100;
    private double scale;

    public JPanelPrint()
    {
        try {
            jbInit();
            setTable();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    void jbInit() throws Exception
    {

        this.setSize(new Dimension(500, 425));
        this.setLayout(borderLayout2);
        mTable.setColumnIdentifiers(jTableColumnNamesArchType);

        jPanel1.setLayout(borderLayout3);
        jPanel3.setLayout(xYLayout4);
        jButtonPrint.setText("print");
        jButtonPrint.addActionListener(new
                                       JPanelPrint_jButtonPrint_actionAdapter(this));
        jButtonView.setText("View");
        jButtonView.addActionListener(new JPanelPrint_jButtonView_actionAdapter(this));
        jPanel1.add(jScrollPane1, BorderLayout.CENTER);
        jScrollPane1.getViewport().add(jTable1, null);

        jPanel3.add(jButtonPrint, new XYConstraints(21, 19, 75, 30));
        jPanel3.add(jButtonView, new XYConstraints(132, 19, 75, 26));
        jPanel3.add(jPanel1, new XYConstraints(1, 54, 419, 335));
        this.add(jPanel3, BorderLayout.CENTER);
    }

    private void setTable()
    {
        Object[] tabdata = new Object[2];
        mTable.setRowCount(0);
        for (int i = 0; i < 100; i++) {
            tabdata[0] = "test" + i;
            tabdata[1] = "no=" + i;
            mTable.addRow(tabdata);
        }
        mTable.setRowCount(100);
    }

    public void actionPerformed(ActionEvent e)
    {
        System.out.println("action");
        PrinterJob printJob = PrinterJob.getPrinterJob();
        printJob.setPrintable(this);

        try {
            printJob.print();
        } catch (Exception PrintException) {}
    }

    public int print(Graphics g, PageFormat pf, int pi) throws PrinterException
    {
        if (pi >= 1) {
            return Printable.NO_SUCH_PAGE;
        }

        g.translate(100, 100);
        Font f = new Font("Monospaced", Font.PLAIN, 12);
        System.out.println(f);
        g.setFont(f);
        paint(g);
        return Printable.PAGE_EXISTS;
    }

    boolean generatXLSFileForJTable(String sInFileName,
                                    DefaultTableModel mInTable,
                                    String sTital, ArrayList aColumnList) throws
        Exception
    {

        // create a new file
        FileOutputStream out = new FileOutputStream(sInFileName);
        // create a new workbook
        HSSFWorkbook wb = new HSSFWorkbook();
        // create a new sheet
        HSSFSheet sheet = wb.createSheet("mySheet");
        HSSFCellStyle cellStyle = wb.createCellStyle();
        HSSFDataFormat dataFormat = wb.createDataFormat();
        // create 2 fonts objects
        HSSFFont font = wb.createFont();

        HSSFHeader heads = sheet.getHeader();
        // declare a row object reference
        HSSFRow row = sheet.createRow((short)3);


        //set font 1 to 12 point type
        font.setFontHeightInPoints((short)12);
        //make it blue
        font.setColor((short)0xc);
        // make it bold
        //arial is the default font
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

        //set font 2 to 10 point type
        font.setFontHeightInPoints((short)10);
        //make it red
        font.setColor((short)HSSFFont.COLOR_NORMAL);
        //make it bold
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        font.setStrikeout(false);
        font.setTypeOffset(HSSFWorkbook.ENCODING_COMPRESSED_UNICODE);
//        font.setFontName("浠垮畫_GB2312");
//        font.setFontName("瀹嬩綋");
//        font.setFontName("Courier New");

        //set cell stlye
        cellStyle.setFont(font);
        //set the cell format
        //            cellStyle.setDataFormat(dataFormat.getFormat("#,##0.0"));
        //set a thin border
        cellStyle.setBorderBottom(cellStyle.BORDER_THIN);
        cellStyle.setBorderLeft(cellStyle.BORDER_THIN);
        cellStyle.setBorderRight(cellStyle.BORDER_THIN);
        cellStyle.setBorderTop(cellStyle.BORDER_THIN);
        cellStyle.setWrapText(true);
        //fill w fg fill color
        //        cellStyle.setFillPattern((short)HSSFCellStyle.SOLID_FOREGROUND);
        //set the cell format to text see HSSFDataFormat for a full list
        cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("text"));

        // set the font
//        cellStyle.setFont(font);

        //璁剧疆棰樺ご
        // declare a cell object reference
        HSSFCell cell = row.createCell((short)4, 5);
        cell.setCellStyle(cellStyle);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        heads.setCenter("");
        // create 3 cell styles
        cell.setCellValue(sTital);
//        cell.setCellValue("浼氳

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -