代码比较长,由两段代码组成。Format.java用于绘制布局调用消息,CellFrmt.java用于对EXCEL进行绘制,代码有点BUG,先看核心的绘制代码吧。
import com.jxcell.CellFormat;
import com.jxcell.RangeRef;
import com.jxcell.View;
import java.awt.*;
public class CellFrmt
{
//Global constants for the Format types
public final int SIMPLE = 0;
public final int CLASSIC1 = 1;
public final int CLASSIC2 = 2;
public final int CLASSIC3 = 3;
public final int ACCOUNTING1 = 4;
public final int ACCOUNTING2 = 5;
public final int ACCOUNTING3 = 6;
public final int LIST1 = 7;
public final int LIST2 = 8;
public final int LIST3 = 9;
public final int COLORFUL1 = 10;
public final int COLORFUL2 = 11;
public final int COLORFUL3 = 12;
public final int EFFECTS3D1 = 13;
View m_view;
CellFormat cfmt;
CellFrmt(View view1)
{
m_view = view1;
try{
m_view.setSelection(1,1,7,5);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}
String hdrRange = null;
String ftrRange = null,
colRange = null,
bodyRange = null,
eRange,
StartRange;
RangeRef savedSelection = null;
//FrmtType -- format type ie Simple, Accounting etc.
public void FormatCells(int FrmtType){
int StartRow = 0, StartCol = 0 , EndRow = 0, EndCol = 0;
String fileName, dirName;
dirName = System.getProperty("user.dir");
fileName = "book.xls";
try
{
m_view.read(dirName + "\\" + fileName);
m_view.setSelection(1,1,7,5);
m_view.setShowGridLines(false);
m_view.setShowEditBar(false);
m_view.setShowRowHeading(false);
m_view.setShowColHeading(false);
m_view.setShowTabs((short)0);
cfmt = m_view.getCellFormat();
m_view.editClear(View.ClearFormats);
savedSelection = m_view.getSelection();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
catch (java.io.IOException io){
System.out.println(io.getMessage());
}
try
{
StartRow = m_view.getSelStartRow();
StartCol = m_view.getSelStartCol();
EndRow = m_view.getSelEndRow();
EndCol = m_view.getSelEndCol();
StartRange = m_view.formatRCNr(StartRow, StartCol, false);
eRange = m_view.formatRCNr(StartRow, EndCol, false);
hdrRange = StartRange + ":" + eRange;
eRange = m_view.formatRCNr(EndRow, StartCol, false);
colRange = StartRange + ":" + eRange;
StartRange = m_view.formatRCNr(EndRow, StartCol, false);
eRange = m_view.formatRCNr(EndRow, EndCol, false);
ftrRange = StartRange + ":" + eRange;
StartRange = m_view.formatRCNr(StartRow + 1, StartCol + 1, false);
eRange = m_view.formatRCNr(EndRow- 1, EndCol, false);
bodyRange = StartRange + ":" + eRange;
m_view.setSelection (hdrRange);
cfmt.setTopBorder(CellFormat.BorderMedium);
cfmt.setBottomBorder(CellFormat.BorderMedium);
AdjustFont(java.awt.Color.black.getRGB(), true, false, false, cfmt);
cfmt.setHorizontalAlignment(CellFormat.HorizontalAlignmentRight);
cfmt.setVerticalAlignment(CellFormat.VerticalAlignmentBottom);
m_view.setCellFormat(cfmt);
//m_view.update();
m_view.setSelection (ftrRange);
cfmt.setBottomBorder(CellFormat.BorderMedium);
cfmt.setTopBorder(CellFormat.BorderThin);
m_view.setCellFormat(cfmt);
//m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println("Can't set border " + e.getMessage());
}
if (FrmtType == SIMPLE)
{
try
{
m_view.setSelection(colRange);
m_view.setCellFormat(cfmt);
m_view.setSelection (hdrRange);
cfmt.setTopBorder(CellFormat.BorderMedium);
cfmt.setBottomBorder(CellFormat.BorderMedium);
AdjustFont(java.awt.Color.black.getRGB(), true, false, false, cfmt);
cfmt.setHorizontalAlignment(CellFormat.HorizontalAlignmentRight);
cfmt.setVerticalAlignment(CellFormat.VerticalAlignmentBottom);
m_view.setCellFormat(cfmt);
//m_view.update();
m_view.setSelection (ftrRange);
cfmt.setBottomBorder(CellFormat.BorderMedium);
cfmt.setTopBorder(CellFormat.BorderThin);
m_view.setCellFormat(cfmt);
//m_view.update();
}
catch (com.jxcell.CellException e)
{
System.out.println("Can't set border " + e.getMessage());
}
}
else if (FrmtType == CLASSIC1)
{
try{
m_view.setSelection(colRange);
cfmt.setTopBorder(CellFormat.BorderNone);
cfmt.setBottomBorder(CellFormat.BorderNone);
cfmt.setRightBorder(CellFormat.BorderThin);
m_view.setCellFormat(cfmt);
//m_view.update();
cfmt.setRightBorder(CellFormat.BorderNone);
m_view.setSelection(hdrRange);
cfmt.setTopBorder(CellFormat.BorderMedium);
cfmt.setBottomBorder(CellFormat.BorderThin);
AdjustFont(java.awt.Color.black.getRGB(), false, true, false, cfmt);
cfmt.setHorizontalAlignment(CellFormat.HorizontalAlignmentRight);
cfmt.setVerticalAlignment(CellFormat.VerticalAlignmentBottom);
m_view.setCellFormat(cfmt);
//m_view.update();
m_view.setSelection(ftrRange);
cfmt.setTopBorder(CellFormat.BorderThin);
cfmt.setBottomBorder(CellFormat.BorderMedium);
m_view.setCellFormat(cfmt);
// m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}
else if (FrmtType == CLASSIC2)
{
Classic2(cfmt);
}
else if (FrmtType == CLASSIC3)
{
Classic3(cfmt);
}
else if (FrmtType == ACCOUNTING1)
{
Accounting1(cfmt);
}
else if (FrmtType == ACCOUNTING2)
{
Accounting2(cfmt);
}
else if (FrmtType == ACCOUNTING3)
{
Accounting3(cfmt);
}
else if (FrmtType == LIST1)
{
List1(cfmt);
}
else if (FrmtType == LIST2)
{
List2(cfmt);
}
else if (FrmtType == LIST3)
{
List3(cfmt);
}
else if (FrmtType == COLORFUL1)
{
Colorful1(cfmt);
}
else if (FrmtType == COLORFUL2)
{
Colorful2(cfmt);
}
else if (FrmtType == COLORFUL3)
{
Colorful3(cfmt);
}
else if (FrmtType == EFFECTS3D1)
{
Effects3D1(cfmt);
}
m_view.setRepaint(true);
m_view.repaint();
}//FormatCells
private void Classic2(CellFormat cellFmt){
short nPattern;
try{
m_view.setSelection(colRange);
AdjustFont(java.awt.Color.black.getRGB(), true, false, false, cellFmt);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorder(CellFormat.BorderThin);
AdjustFont(java.awt.Color.white.getRGB(), false, false, false, cellFmt);
nPattern = 1;
cellFmt.setPattern(nPattern);
cellFmt.setPatternFG(java.awt.Color.magenta);
cellFmt.setPatternBG(java.awt.Color.magenta);
cellFmt.setHorizontalAlignment(CellFormat.HorizontalAlignmentRight);
cellFmt.setVerticalAlignment(CellFormat.VerticalAlignmentBottom);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(ftrRange);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
cellFmt.setTopBorder(CellFormat.BorderThin);
m_view.setCellFormat(cellFmt);
//m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
} //Classic2
private void Classic3 (CellFormat cellFmt){
try{
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
AdjustFont(java.awt.Color.white.getRGB(), true, true, false, cellFmt);
AlignRight(cellFmt);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(11).getRGB(), java.awt.Color.black.getRGB());
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(ftrRange);
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(15).getRGB(), java.awt.Color.black.getRGB());
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(bodyRange);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(15).getRGB(), java.awt.Color.black.getRGB());
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(colRange);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(15).getRGB(), java.awt.Color.black.getRGB());
m_view.setCellFormat(cellFmt);
//m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//classic3
private void Accounting1(CellFormat cellFmt)
{
String numberFormat;
try{
m_view.setSelection(colRange);
m_view.setCellFormat(cfmt);
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderThin);
cellFmt.setBottomBorder(CellFormat.BorderThin);
AdjustFont(java.awt.Color.magenta.getRGB(), true, true, false, cellFmt);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(bodyRange);
numberFormat = "#,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(savedSelection);
m_view.setSelection(m_view.getSelStartRow() + 1, m_view.getSelStartCol()+1,
m_view.getSelStartRow() + 1, m_view.getSelEndCol());
cellFmt.setBottomBorder(CellFormat.BorderNone);
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(ftrRange);
cellFmt.setBottomBorder(CellFormat.BorderDouble);
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
} //Accounting 1
private void Accounting2(CellFormat cellFmt)
{
String numberFormat;
try{
m_view.setSelection(colRange);
m_view.setCellFormat(cfmt);
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderThick);
cellFmt.setTopBorderColor(java.awt.Color.lightGray);
cellFmt.setBottomBorder(CellFormat.BorderThin);
cellFmt.setBottomBorderColor(java.awt.Color.lightGray);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(bodyRange);
numberFormat = "#,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(savedSelection);
m_view.setSelection(m_view.getSelStartRow() + 1, m_view.getSelStartCol()+1,
m_view.getSelStartRow() + 1, m_view.getSelEndCol());
cellFmt.setBottomBorder(CellFormat.BorderNone);
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(ftrRange);
cellFmt.setBottomBorder(CellFormat.BorderThick);
cellFmt.setBottomBorderColor(java.awt.Color.lightGray);
cellFmt.setTopBorder(CellFormat.BorderThin);
cellFmt.setTopBorderColor(java.awt.Color.lightGray);
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
} //Accounting2
private void Accounting3(CellFormat cellFmt)
{
String numberFormat;
try{
m_view.setSelection(colRange);
AdjustFont(java.awt.Color.black.getRGB(), false, true, false, cellFmt);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(bodyRange);
numberFormat = "#,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(savedSelection);
m_view.setSelection(m_view.getSelStartRow() + 1, m_view.getSelStartCol() + 1,
m_view.getSelStartRow() + 1, m_view.getSelEndCol());
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setTopBorder(CellFormat.BorderNone);
cellFmt.setBottomBorder(CellFormat.BorderNone);
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(ftrRange);
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(m_view.getSelEndRow(), m_view.getSelStartCol()+1,
m_view.getSelEndRow(), m_view.getSelEndCol());
cellFmt.setTopBorder(CellFormat.BorderThin);
cellFmt.setBottomBorder(CellFormat.BorderDouble);
m_view.setCellFormat(cellFmt);
//m_view.update();
m_view.setSelection(savedSelection);
m_view.setSelection(m_view.getSelStartRow(), m_view.getSelStartCol(),
m_view.getSelStartRow(), m_view.getSelEndCol());
cellFmt.setTopBorder(CellFormat.BorderNone);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorderColor(java.awt.Color.green);
AdjustFont(m_view.getPaletteEntry(16).getRGB(), false, true, false, cellFmt);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
//m_view.update();
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
} //Accounting3
private void Effects3D1(CellFormat cellFmt)
{
try{
SetSolidPattern(cellFmt, java.awt.Color.lightGray.getRGB(),0);
Set3DBorder(cellFmt, m_view.getSelStartRow(), m_view.getSelStartCol(),
m_view.getSelEndRow(), m_view.getSelEndCol(),
java.awt.Color.darkGray.getRGB(), java.awt.Color.darkGray.getRGB(),java.awt.Color.darkGray.getRGB());
m_view.setCellFormat(cellFmt);
m_view.setSelection(bodyRange);
Set3DBorder(cellFmt, m_view.getSelStartRow(), m_view.getSelStartCol(),
m_view.getSelEndRow(), m_view.getSelEndCol(),
java.awt.Color.lightGray.getRGB(), java.awt.Color.darkGray.getRGB(), java.awt.Color.lightGray.getRGB());
m_view.setCellFormat(cellFmt);
m_view.setSelection(hdrRange);
AdjustFont(java.awt.Color.magenta.getRGB(), true, false, false, cellFmt);
AlignCenter(cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(colRange);
Set3DBorder(cellFmt,m_view.getSelStartRow(),m_view.getSelStartCol(),m_view.getSelEndRow(), m_view.getSelEndCol(), java.awt.Color.lightGray.getRGB(), java.awt.Color.lightGray.getRGB(),java.awt.Color.darkGray.getRGB());
AdjustFont(java.awt.Color.black.getRGB(), true, false, false, cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(ftrRange);
Set3DBorder(cellFmt,m_view.getSelStartRow(),m_view.getSelStartCol(),m_view.getSelEndRow(),m_view.getSelEndCol(), java.awt.Color.lightGray.getRGB(), java.awt.Color.darkGray.getRGB(), java.awt.Color.darkGray.getRGB());
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//Effects3D1
private void Colorful1(CellFormat cellFmt)
{
int color = java.awt.Color.red.getRGB();
try{
m_view.setSelection(savedSelection);
cellFmt.setBottomBorder(CellFormat.BorderThin);
cellFmt.setBottomBorderColor(java.awt.Color.red);
SetSolidPattern(cellFmt,java.awt.Color.darkGray.getRGB(),java.awt.Color.black.getRGB());
//outline border
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setLeftBorder(CellFormat.BorderMedium);
cellFmt.setRightBorder(CellFormat.BorderMedium);
cellFmt.setTopBorderColor(java.awt.Color.red);
cellFmt.setLeftBorderColor(java.awt.Color.red);
cellFmt.setRightBorderColor(java.awt.Color.red);
AdjustFont(color, false, false, false, cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(hdrRange);
SetSolidPattern(cellFmt, java.awt.Color.black.getRGB(),java.awt.Color.black.getRGB());
AdjustFont(color, true, true, false, cellFmt);
AlignCenter(cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(colRange);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(11).getRGB(),java.awt.Color.black.getRGB());
AdjustFont(color, true, true, false, cellFmt);
m_view.setCellFormat(cellFmt);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//Colorful1
private void Colorful2(CellFormat cellFmt)
{
try{
int color = m_view.getPaletteEntry(14).getRGB();
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorder(CellFormat.BorderThin);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(9).getRGB(),java.awt.Color.black.getRGB());
AdjustFont(color, true, true, false, cellFmt);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(ftrRange);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
cellFmt.setTopBorder(CellFormat.BorderThin);
m_view.setCellFormat(cellFmt);
m_view.setSelection(colRange);
AdjustFont(java.awt.Color.black.getRGB(), true, true, false, cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(savedSelection);
SetHatchPattern(cellFmt, m_view.getPaletteEntry(16).getRGB(), java.awt.Color.red.getRGB());
m_view.setCellFormat(cellFmt);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//Colorful2
private void Colorful3(CellFormat cellFmt)
{
try{
m_view.setSelection(savedSelection);
SetSolidPattern(cellFmt, java.awt.Color.black.getRGB(),java.awt.Color.black.getRGB());
AdjustFont(java.awt.Color.white.getRGB(), false, false, false, cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(hdrRange);
AdjustFont(java.awt.Color.green.getRGB(), true, true, false, cellFmt);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(colRange);
AdjustFont(java.awt.Color.magenta.getRGB(), true, true, false, cellFmt);
m_view.setCellFormat(cellFmt);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//Colorful3
private void List1(CellFormat cellFmt)
{
String newSelection, numberFormat;
int fcolor, bcolor;
try{
m_view.setSelection(savedSelection);
//Outline Border - thin
cellFmt.setTopBorder(CellFormat.BorderThin);
cellFmt.setLeftBorder(CellFormat.BorderThin);
cellFmt.setRightBorder(CellFormat.BorderThin);
cellFmt.setTopBorderColor(m_view.getPaletteEntry(16));
cellFmt.setLeftBorderColor(m_view.getPaletteEntry(16));
cellFmt.setRightBorderColor(m_view.getPaletteEntry(16));
m_view.setCellFormat(cellFmt);
m_view.setSelection(hdrRange);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(14).getRGB(),java.awt.Color.black.getRGB());
AdjustFont(java.awt.Color.blue.getRGB(), true, true, false, cellFmt);
AlignCenter(cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(ftrRange);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(14).getRGB(),java.awt.Color.black.getRGB());
AdjustFont(java.awt.Color.blue.getRGB(), true, false, false, cellFmt);
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
fcolor = m_view.getPaletteEntry(19).getRGB();
bcolor = java.awt.Color.red.getRGB();
for (int i = m_view.getSelStartRow() + 1; i < m_view.getSelEndRow() - 1; i = i + 2)
{
newSelection = m_view.formatRCNr(i, m_view.getSelStartCol(), false) +
":" + m_view.formatRCNr(i, m_view.getSelEndCol(), false);
m_view.setSelection(newSelection);
SetHatchPattern(cellFmt, fcolor, bcolor);
m_view.setCellFormat(cellFmt);
}
fcolor = java.awt.Color.white.getRGB();
bcolor = m_view.getPaletteEntry(15).getRGB();
for (int i = m_view.getSelStartRow() + 2; i < m_view.getSelEndRow() - 1; i = i + 2)
{
newSelection = m_view.formatRCNr(i, m_view.getSelStartCol(), false) +
":" + m_view.formatRCNr(i, m_view.getSelEndCol(), false);
m_view.setSelection(newSelection);
SetHatchPattern(cellFmt, fcolor, bcolor);
m_view.setCellFormat(cellFmt);
}
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}
private void List2(CellFormat cellFmt)
{
String numberFormat, newSelection;
int fcolor, bcolor;
try{
m_view.setSelection(savedSelection);
//Outline Border - thin
cellFmt.setTopBorder(CellFormat.BorderThin);
cellFmt.setLeftBorder(CellFormat.BorderThin);
cellFmt.setRightBorder(CellFormat.BorderThin);
cellFmt.setTopBorderColor(m_view.getPaletteEntry(16));
cellFmt.setLeftBorderColor(m_view.getPaletteEntry(16));
cellFmt.setRightBorderColor(m_view.getPaletteEntry(16));
m_view.setCellFormat(cellFmt);
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderThick);
cellFmt.setTopBorderColor(m_view.getPaletteEntry(16));
cellFmt.setBottomBorder(CellFormat.BorderThin);
SetSolidPattern(cellFmt, m_view.getPaletteEntry(15).getRGB(),java.awt.Color.black.getRGB());
AlignCenter(cellFmt);
AdjustFont(java.awt.Color.red.getRGB(), true, true, false, cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(ftrRange);
cellFmt.setBottomBorder(CellFormat.BorderThick);
cellFmt.setBottomBorderColor(m_view.getPaletteEntry(16));
cellFmt.setTopBorder(CellFormat.BorderThin);
numberFormat = "$ #,##0.00_);(#,##0.00)";
cellFmt.setCustomFormat(numberFormat);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
fcolor = java.awt.Color.red.getRGB();
bcolor = java.awt.Color.white.getRGB();
for (int i = m_view.getSelStartRow() + 1; i < m_view.getSelEndRow() - 1; i = i + 2)
{
newSelection = m_view.formatRCNr(i, m_view.getSelStartCol(), false) +
":" + m_view.formatRCNr(i, m_view.getSelEndCol(), false);
m_view.setSelection(newSelection);
SetHatchPattern(cellFmt, fcolor, bcolor);
m_view.setCellFormat(cellFmt);
}
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
} //List2
private void List3(CellFormat cellFmt)
{
try{
m_view.setSelection(colRange);
m_view.setCellFormat(cfmt);
m_view.setSelection(hdrRange);
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setTopBorderColor(java.awt.Color.darkGray);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorderColor(java.awt.Color.darkGray);
AlignCenter(cellFmt);
AdjustFont(m_view.getPaletteEntry(11).getRGB(), true, false, false, cellFmt);
m_view.setCellFormat(cellFmt);
m_view.setSelection(ftrRange);
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setTopBorderColor(java.awt.Color.darkGray);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorderColor(java.awt.Color.darkGray);
AlignRight(cellFmt);
m_view.setCellFormat(cellFmt);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//List3
private void AdjustFont(
int color,
boolean bold,
boolean italic,
boolean underline,
CellFormat cellFmt)
{
cellFmt.setFontBold(bold);
cellFmt.setFontItalic(italic);
cellFmt.setFontUnderline((short) (underline?1:0));
cellFmt.setFontColor(new Color(color));
} //AdjustFont
private void AlignCenter(CellFormat cellFmt)
{
try{
cellFmt.setHorizontalAlignment(CellFormat.HorizontalAlignmentCenter);
cellFmt.setVerticalAlignment(CellFormat.VerticalAlignmentBottom);
cellFmt.setWordWrap(false);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//AlignCenter
private void AlignRight(CellFormat cellFmt)
{
try{
cellFmt.setHorizontalAlignment(CellFormat.HorizontalAlignmentRight);
cellFmt.setVerticalAlignment(CellFormat.VerticalAlignmentBottom);
cellFmt.setWordWrap(false);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
}//AlignRight
private void Set3DBorder(CellFormat cellFmt,
int row1,
int col1,
int row2,
int col2,
int outlineColor,
int rightColor,
int bottomColor)
{
try{
m_view.setSelection(row1, col1, row2, col2);
//create an outline around the selection
cellFmt.setTopBorder(CellFormat.BorderMedium);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
cellFmt.setLeftBorder(CellFormat.BorderMedium);
cellFmt.setRightBorder(CellFormat.BorderMedium);
cellFmt.setTopBorderColor(new Color(outlineColor));
cellFmt.setBottomBorderColor(new Color(outlineColor));
cellFmt.setLeftBorderColor(new Color(outlineColor));
cellFmt.setRightBorderColor(new Color(outlineColor));
m_view.setCellFormat(cellFmt);
m_view.setSelection(row1, col2, row2, col2);
cellFmt.setRightBorder(CellFormat.BorderMedium);
cellFmt.setRightBorderColor(new Color(rightColor));
m_view.setCellFormat(cellFmt);
m_view.setSelection(row2, col1, row2, col2);
cellFmt.setBottomBorder(CellFormat.BorderMedium);
//m_view.getPaletteEntry(bottomColor);
cellFmt.setBottomBorderColor(new Color(bottomColor));
m_view.setCellFormat(cellFmt);
}
catch (com.jxcell.CellException e){
System.out.println(e.getMessage());
}
} //3DBorder
private void SetSolidPattern(CellFormat cellFmt,
int fcolor,
int bcolor)
{
short nPattern;
nPattern = 1;
try{
cellFmt.setPattern(nPattern);
cellFmt.setPatternFG(new Color(fcolor));
cellFmt.setPatternBG(new Color(bcolor));
}
catch (Exception e){
System.out.println(e.getMessage());
}
} //SetSolidPattern
private void SetHatchPattern(CellFormat cellFmt,
int fcolor,
int bcolor)
{
try{
cellFmt.setPattern((short)4);
cellFmt.setPatternFG(new Color(fcolor));
cellFmt.setPatternBG(new Color(bcolor));
}
catch (Exception e){
System.out.println(e.getMessage());
}
}//SetHatchPattern
}
GUI部分代码:
import com.jxcell.CellFormat;
import com.jxcell.View;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
public class Format extends JFrame implements java.awt.event.ActionListener{
CellFormat originalCellFormat;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JButton btnSimple = new JButton();
JButton btnClassic1 = new JButton();
JButton btnClassic2 = new JButton();
JButton btnClassic3 = new JButton();
JButton btnAcct1 = new JButton();
JButton btnAcct2 = new JButton();
JButton btnAcct3 = new JButton();
JButton btnColor1 = new JButton();
JButton btnColor2 = new JButton();
JButton btnColor3 = new JButton();
JButton btnList1 = new JButton();
JButton btnList2 = new JButton();
JButton btnList3 = new JButton();
JButton btn3DEffect1 = new JButton();
View m_view = new View();
//Construct the frame
public Format() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
m_view.setShowEditBar(false);
m_view.setShowRowHeading(false);
m_view.setShowColHeading(false);
m_view.setShowTabs((short)0);
}
catch(Exception e) {
e.printStackTrace();
}
}
static public void main(String args[])
{
Format frame = new Format();
frame.validate();
frame.setVisible(true);
}
//Component initialization
private void jbInit() throws Exception {
this.getContentPane().setLayout(borderLayout1);
this.setSize(new Dimension(522, 493));
this.setTitle("Format Demo");
btnSimple.setText("Simple");
btnSimple.setBounds(new Rectangle(6, 3, 111, 35));
btnSimple.addActionListener(this);
btnClassic1.setText("Classic 1");
btnClassic1.setBounds(new Rectangle(136, 3, 112, 35));
btnClassic1.addActionListener(this);
btnClassic2.setText("Classic 2");
btnClassic2.setBounds(new Rectangle(265, 3, 113, 35));
btnClassic2.addActionListener(this);
btnClassic3.setPreferredSize(new Dimension(100, 27));
btnClassic3.setText("Classic 3");
btnClassic3.setBounds(new Rectangle(397, 2, 113, 35));
btnClassic3.addActionListener(this);
btnAcct1.setPreferredSize(new Dimension(111, 27));
btnAcct1.setText("Accounting 1");
btnAcct1.setBounds(new Rectangle(6, 45, 111, 35));
btnAcct1.addActionListener(this);
btnAcct2.setText("Accounting 2");
btnAcct2.setBounds(new Rectangle(137, 45, 112, 35));
btnAcct2.addActionListener(this);
btnAcct3.setText("Accounting 3");
btnAcct3.setBounds(new Rectangle(267, 44, 113, 35));
btnAcct3.addActionListener(this);
btnColor1.setText("Color 1");
btnColor1.setBounds(new Rectangle(398, 47, 113, 35));
btnColor1.addActionListener(this);
btnColor2.setText("Color 2");
btnColor2.setBounds(new Rectangle(6, 86, 113, 35));
btnColor2.addActionListener(this);
btn3DEffect1.setText("3D Effects");
btn3DEffect1.setBounds(new Rectangle(267, 130, 112, 35));
btn3DEffect1.addActionListener(this);
btnColor3.setMinimumSize(new Dimension(111, 27));
btnColor3.setPreferredSize(new Dimension(111, 27));
btnColor3.setText("Color 3");
btnColor3.setBounds(new Rectangle(138, 87, 111, 35));
btnColor3.addActionListener(this);
btnList1.setText("List 1");
btnList1.setBounds(new Rectangle(267, 88, 113, 35));
btnList1.addActionListener(this);
btnList2.setText("List 2");
btnList2.setBounds(new Rectangle(399, 92, 112, 35));
btnList2.addActionListener(this);
btnList3.setText("List 3");
btnList3.setBounds(new Rectangle(138, 129, 113, 35));
btnList3.addActionListener(this);
jPanel1.setLayout(null);
m_view.setBounds(new Rectangle(4, 173, 507, 293));
this.getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.add(m_view, null);
jPanel1.add(btnSimple, null);
jPanel1.add(btnAcct1, null);
jPanel1.add(btnColor2, null);
jPanel1.add(btnClassic1, null);
jPanel1.add(btnAcct2, null);
jPanel1.add(btnColor3, null);
jPanel1.add(btnList3, null);
jPanel1.add(btnClassic3, null);
jPanel1.add(btnList1, null);
jPanel1.add(btnClassic2, null);
jPanel1.add(btnAcct3, null);
jPanel1.add(btn3DEffect1, null);
jPanel1.add(btnColor1, null);
jPanel1.add(btnList2, null);
}
//Overridden so we can exit on System Close
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if(e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
public void actionPerformed(java.awt.event.ActionEvent e){
Object buttonObj = e.getSource();
if(buttonObj==btnSimple) {
btnSimple_actionPerformed(); }
else if(buttonObj==btnClassic1) {
btnClassic1_actionPerformed(); }
else if(buttonObj==btnClassic2) {
btnClassic2_actionPerformed();}
else if(buttonObj==btnClassic3) {
btnClassic3_actionPerformed();}
else if(buttonObj==btnAcct1) {
btnAcct1_actionPerformed();}
else if(buttonObj==btnAcct2) {
btnAcct2_actionPerformed();}
else if(buttonObj==btnAcct3) {
btnAcct3_actionPerformed();}
else if(buttonObj==btn3DEffect1) {
btn3DEffect1_actionPerformed();}
else if(buttonObj==btnColor1) {
btnColor1_actionPerformed();}
else if(buttonObj==btnColor2) {
btnColor2_actionPerformed();}
else if(buttonObj==btnColor3) {
btnColor3_actionPerformed();}
else if(buttonObj==btnList1) {
btnList1_actionPerformed();}
else if(buttonObj==btnList2) {
btnList2_actionPerformed();}
else if(buttonObj==btnList3) {
btnList3_actionPerformed();}
}
public void btnSimple_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.SIMPLE);
}
public void btnClassic1_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.CLASSIC1);
}
public void btnClassic2_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.CLASSIC2);
}
public void btnClassic3_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.CLASSIC3);
}
public void btnAcct1_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.ACCOUNTING1);
}
public void btnAcct2_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.ACCOUNTING2);
}
public void btnAcct3_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.ACCOUNTING3);
}
public void btn3DEffect1_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.EFFECTS3D1);
}
public void btnColor1_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.COLORFUL1);
}
public void btnColor2_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.COLORFUL2);
}
public void btnColor3_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.COLORFUL3);
}
public void btnList1_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.LIST1);
}
public void btnList2_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.LIST2);
}
public void btnList3_actionPerformed() {
CellFrmt cFrmt = new CellFrmt(m_view);
cFrmt.FormatCells(cFrmt.LIST3);
}
}