WEB标准学习路程之,单元格为
分类:高并发

Excel 中看起单元格非常的多,但实际上,它只是虚的,对于没有内容的单元格,在 ASP.NET 中用 NPOI 去取时,取出来是 null 的。

自己写的excel组件,方便在使用。

link:

 

但针对这个没有内容的单元格要说明:

/*-------------------------------------------------------------------------
 * Author    : Stpangpang
 * Created    : 2006/03/09
 * Purpose    : 操作Excel对象的类,因为有些报表如果要用Crystal Report 来做话,很麻烦,
 *            还是专门做一个操作Excel的类,以后用的时候比较方便,目前只适用于已经做好的Excle模版。
 *              2006/05已经增加了一些功能
 * Version  : 1.0 
 * -------------------------------------------------------------------------
 **/
using Excel;
using System;
using System.Reflection;

author: 天下鹰

表格属性

一、原来有内容,后来把内容删除了,结果不是 null,也就是说单元格不是虚的。

namespace ExcelClass
{
    /// <summary>
    /// 为纪念三八妇女节,写的操作Excel的类,初步设计思想是考虑到报表的用途,自己用起来比较爽。  Stpangapng 2006/03/08
    /// 2006年5月份扩充一些功能。
    /// </summary>
    public class ExcelBase
    {
        #region " Private Variable Definition "
    
        private Application exlApp;
        private _Workbook exlWorkBook;
        private _Worksheet exlWorkSheet; 
        private int sheetNumber =1;
                
        #endregion

content:

Table Properties
属性

二、虽然没有内容,但是有边框,结果也不是 null,同样说明这个单元格不是虚的。

        #region " Public Property and Constant Definition "

 

CSS Version
版本

        /// <summary>
        /// Excel单元格边框的线条的粗细枚举
        /// </summary>
        public enum ExcelBorderWeight 
        {
            /// <summary>
            /// 极细的线条
            /// </summary>
            Hairline=Excel.XlBorderWeight.xlHairline ,
            /// <summary>
            /// 中等的线条
            /// </summary>
            Medium=Excel.XlBorderWeight.xlMedium ,
            /// <summary>
            /// 粗线条
            /// </summary>
            Thick=Excel.XlBorderWeight.xlThick ,
            /// <summary>
            /// 细线条
            /// </summary>
            Thin=Excel.XlBorderWeight.xlThin 
        }

简述

Compatibility
兼容性

        /// <summary>
        /// Excel单元格边框枚举
        /// </summary>
        public enum ExcelBordersIndex
        {
            /// <summary>
            /// 主对角线从
            /// </summary>
            DiagonalDown=Excel.XlBordersIndex.xlDiagonalDown ,
            /// <summary>
            /// 辅对角线
            /// </summary>
            DiagonUp=Excel.XlBordersIndex.xlDiagonalUp ,
            /// <summary>
            ///底边框
            /// </summary>
            EdgeBottom=Excel.XlBordersIndex.xlEdgeBottom ,
            /// <summary>
            /// 左边框
            /// </summary>
            EdgeLeft=Excel.XlBordersIndex.xlEdgeLeft ,
            /// <summary>
            /// 右边框
            /// </summary>
            EdgeRight=Excel.XlBordersIndex.xlEdgeRight ,
            /// <summary>
            /// 顶边框
            /// </summary>
            EdgeTop=Excel.XlBordersIndex.xlEdgeTop ,
            /// <summary>
            /// 边框内水平横线
            /// </summary>
            InsideHorizontal=Excel.XlBordersIndex.xlInsideHorizontal ,
            /// <summary>
            /// 边框内垂直竖线
            /// </summary>
            InsideVertical=Excel.XlBordersIndex.xlInsideVertical 
        }

1.1       使用范围

该操作适用于VS2005及以上版本。

 

Inherit From Parent
继承性

        /// <summary>
        /// Excel单元格的竖直方法对齐枚举
        /// </summary>
        public enum ExcelVerticalAlignment 
        {
            /// <summary>
            /// 居中
            /// </summary>
            Center=Excel.Constants.xlCenter  ,
            /// <summary>
            /// 靠上
            /// </summary>
            Top=Excel.Constants.xlTop,
            /// <summary>
            /// 靠下
            /// </summary>
            Bottom=Excel.Constants.xlBottom ,
            /// <summary>
            /// 两端对齐
            /// </summary>
            Justify=Excel.Constants.xlJustify ,
            /// <summary>
            /// 分散对齐
            /// </summary>
            Distributed=Excel.Constants.xlDistributed 

函数调用说明

Description
简介

        };

1.1.1          引用的添加

右键添加引用Excel Library,VS2005为11.0版本,VS2008为12.0版本

 

添加引用后会在程序的bin目录下有一个Interop.Excel.dll文件,在应用程序页面添加引用的命名空间 using Excel;

 

 

border-collapse

        /// <summary>
        /// Excel 水平方向对齐枚举
        /// </summary>
        public enum ExcelHorizontalAlignment
        {
            /// <summary>
            ///常规
            /// </summary>
            General = Excel.Constants.xlGeneral ,
            /// <summary>
            /// 靠左
            /// </summary>
            Left =Excel.Constants.xlLeft ,
            /// <summary>
            /// 居中
            /// </summary>
            Center=Excel.Constants.xlCenter ,
            /// <summary>
            /// 靠右
            /// </summary>
            Right=Excel.Constants.xlRight,
            /// <summary>
            /// 填充
            /// </summary>
            Fill=Excel.Constants.xlFill,
            /// <summary>
            /// 两端对齐
            /// </summary>
            Justify=Excel.Constants.xlJustify,
            /// <summary>
            /// 跨列居中
            /// </summary>
            CenterAcrossSelection=Excel.Constants.xlCenterAcrossSelection,
            /// <summary>
            /// 分散对齐
            /// </summary>
            Distributed=Excel.Constants.xlDistributed 

1.1.2          模板的读写方法

 读模板的话,首先模板存放在某个路径下,根据模板把从数据库里取出的数据写回EXCEL然后生成一个新的EXCEL存放都另一个路径以供下载,模板不变。

//建立一个Excel.Application的新进程

                            Excel.Application app = new Excel.Application();

                            if (app == null)

                            {

                                return;

                            }

                            app.Visible = false;

                            app.UserControl = true;

                            Workbooks workbooks = app.Workbooks;

                            _Workbook workbook = workbooks.Add(template_path + """测试.xls");//这里的Add方法里的参数就是模板的路径                            Sheets sheets = workbook.Worksheets;

                            _Worksheet worksheet = (_Worksheet)sheets.get_Item(1); //这里表示模板只有一个sheet表

                            if (worksheet == null)

                            {

                               return;

                         }

 

如果没有实际的物理模板,可以继承一个空的模板进行读写

_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);//这里的Add方法里的参数就相当于继承了一个空模板

单元格的赋值如下

worksheet.Cells[i, i] = "达达集团";//表示EXCEL表的第i行第i列,对其它行列的赋值也一样

CSS2

        }             

1.1.3          方法的调用

关于单元格处理的操作类在ExcelOperate.cs类文件里

设置连续单元格边框颜色

worksheet.get_Range(worksheet.Cells[i,1],worksheet.Cells[i, 14]).Borders.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);//表示第i行的第1列到14列的边框颜色为黑色,只需给定开始单元格和结束单元格

设置行高

excelOperate.SetRowHeight(worksheet, worksheet.Cells[i,1],worksheet.Cells[i, 14], 24.75);//行高设定为24.75

设置连续单元格的背景颜色

excelOperate.SetBgColor(worksheet, worksheet.Cells[i,1],worksheet.Cells[i,14], System.Drawing.Color.Silver);//设置背景颜色为银白色

设置连续单元格的字体大小

excelOperate.SetFontSize(worksheet, worksheet.Cells[i,1],worksheet.Cells[i,14],16);//字体设为16号大小

单元格字体的设置

excelOperate.SetBold(worksheet, worksheet.Cells[i,1],worksheet.Cells[i,14]);//黑体字

单元格字体颜色设置

excelOperate.SetColor(worksheet, worksheet.Cells[i,1],worksheet.Cells[i,14], System.Drawing.Color.Red); //体字颜色设为红色

单元格内容剧中显示设置

excelOperate.SetHAlignCenter(worksheet, worksheet.Cells[i,1],worksheet.Cells[i,14]);

合并单元格

worksheet.get_Range(worksheet.Cells[i,1],worksheet.Cells[i,14]).Merge(Missing.Value);//合并第i行1至14列的单元格                          worksheet.get_Range (worksheet.Cells[i,1],worksheet.Cells[i,1]).Value2 = "无赖集团";//给合并后的单元格赋值,合并后的单元格为第i行的第一个单元格

(注:如果在程序中动态合并单元格,合并前必须保证各单元格的内容为空,所以一般在合并相同内容的单元格之前,先保存原有的值,清空要合并的单元格的值,然后进行合并操作再赋值即可,之所以要清空是因为我们在操作实际的EXCEL合并单元格的时候,如果各单元格有值,鼠标操作合并的时候会提示“选定区域包含多重数值。合并到一个单元格后只能保留最左上角的数据” ,点确定后单元格会保留最左上单元格的值,而程序执行过程中遇到这种情况会直接导致程序执行中断,无法正常导出)

 

保存生成的EXCEL文件

workbook.SaveAs(save_path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);//save_path为要保存到的文件路径

excelOperate.Dispose(worksheet, workbook, app);//生成好EXCEL文件后关闭Excel进程

 

EXCEL模板中含多个sheet的操作

1.    如果模板中只包含固定的多各sheet(以2各为例),可以这样进行读写访问

_Worksheet worksheet1 = (_Worksheet)sheets.get_Item(1);//读第一个sheet

_Worksheet worksheet2 = (_Worksheet)sheets.get_Item(2);//读第二个sheet

赋值操作和上面说的类似,如下:

Worksheet1.Cells[i, i] = "赖达犯罪集团";

Worksheet2.Cells[i, i] = "赖达破坏集团";

 

2.    如果要在应用程序中动态生成多个sheet(以其中一个sheet为样本生成),如要按月份生成每月一个sheet,那么模板中只需包含一个sheet模板,可根据选择的月份个数在应用程序中复制相同的几个sheet即可。

for (int i = 1; i < monthCount; i++)

 worksheet.Copy(Missing.Value, workbook.Worksheets[1]);//月统计工作薄,如果选择了三个月,即monthCount=3,那么就会再复制两个相同的sheet,然后进行读写操作,如下面的代码片段:

 

int item_id = 1;

_Worksheet ws = null;

for (int i = 0; i < tableMM.Rows.Count; i++)

{

 ……

if (tableMM.Rows[i]["DATE_MONTH"].ToString() == Month)

{

 ws = (_Worksheet)sheets.get_Item(item_id);

ws.Cells[3 + i, 1] = rowNum;

ws.Cells[3 + i, 2] = tableMM.Rows[i]["PROJNO"];

   continue;

}

……

ws.Name = "XX月份";//sheet的名称

item_id++;

}

IE5+

        /// <summary>
        /// Excel边框线条的枚举
        /// </summary>
        public enum ExcelStyleLine
        {
            /// <summary>
            /// 没有线条
            /// </summary>
            StyleNone =Excel.XlLineStyle.xlLineStyleNone ,
            /// <summary>
            /// 连续的细线
            /// </summary>
            Continious=Excel.XlLineStyle.xlContinuous ,
            /// <summary>
            /// 点状线
            /// </summary>
            Dot=Excel.XlLineStyle.xlDot ,
            /// <summary>
            /// 双条线
            /// </summary>
            Double=Excel.XlLineStyle.xlDouble ,
        }

        /// <summary>
        /// 排序的玫举
        /// </summary>
        public enum ExcelSortOrder
        {
            /// <summary>
            /// 升序
            /// </summary>
            Ascending = Excel.XlSortOrder.xlAscending,
            /// <summary>
            /// 降序
            /// </summary>
            Descending = Excel.XlSortOrder.xlDescending ,
        }

设置或检索表格的行和单元格的边是合并在一起还是按照标准的HTML样式分开

        
        
        #endregion
        
        #region " Construction Method "

border-spacing

        /// <summary>
        /// 构造函数
        /// </summary>
        public ExcelBase()
        {
            //实例化Excel对象。
            exlApp=new Excel.Application();
        }
            
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="ExcelVisible">Excel是否可见</param>
        public ExcelBase(bool ExcelVisible)
        {
            exlApp =new Excel.Application();
            exlApp.Visible =ExcelVisible ;
        }

CSS2

        #endregion 
    
        #region " Open and dispose method definition "
        
        /// <summary>
        /// 打开一个Excel文件
        /// </summary>
        public void Open() 
        {
            //Get a new WorkSheet 
            exlWorkBook =(Workbook)exlApp.Workbooks.Add(Missing.Value);
            exlWorkSheet=(Worksheet)exlWorkBook.ActiveSheet; 
        }

NONE

        /// <summary>
        /// 打开已经存在的Excel文件模版
        /// </summary>
        /// <param name="XLTPath">已经存在的文件模版的完整路径</param>
        public void Open(string XLTPath )
        {
            if (System.IO.File.Exists(XLTPath))
            {
                exlWorkBook=(Workbook)exlApp.Workbooks.Add(XLTPath);
                exlWorkSheet =(Worksheet)exlWorkBook.ActiveSheet;
            }
            else
            {
                throw new System.IO.FileNotFoundException(string.Format("{0}不存在,请重新确定文件名",XLTPath));
            }
        }

        /// <summary>
        /// 保存Excel文件
        /// </summary>
        /// <param name="fileName">保存的文件名</param>
        public void SaveAs(string fileName)
        {
            exlWorkSheet.SaveAs(fileName, Missing.Value, Missing.Value, Missing.Value, false , false, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value ,Missing.Value , Missing.Value);
        }

设置或检索当表格边框独立时,行和单元格的边框在横向和纵向上的间距

        /// <summary>
        /// 彻底关闭Excel的资源和进程
        /// </summary>
        public void Dispose()
        {
            if (exlApp !=null)
            {
                exlApp.Quit();
            }
            if (exlWorkBook !=null)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(exlWorkBook);
                exlWorkBook=null;
            }    
            System.Runtime.InteropServices.Marshal.ReleaseComObject(exlWorkSheet);
            exlWorkSheet=null;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(exlApp);
            exlApp = null;
            GC.Collect();
        }
        #endregion

caption-side

        #region " Print and PrintPreview method definition "
    
        /// <summary>
        /// 打印Excel文件,可以设置是否是打印前预览打印的Excel文件
        /// </summary>
        /// <param name="IsPrintPreview">打印前是否预览 , true:打印前预览false:直接打印,不预览 </param>
        public void Print(bool IsPrintPreview)
        {
            bool flag =exlApp.Visible ;
            if (exlApp.Visible )
            {
                exlApp.Visible =true;
            }
            exlWorkSheet.PrintOut(Missing.Value,Missing.Value,Missing.Value ,IsPrintPreview,Missing.Value ,Missing.Value ,Missing.Value,Missing.Value ) ;
            exlApp.Visible =flag;
        }

CSS2

        /// <summary>
        /// 打印Excel文件,可以设置是否打印预览,以及打印的份数
        /// </summary>
        /// <param name="IsPrintPreview">打印前是否预览 , true:打印前预览false:直接打印,不预览</param>
        /// <param name="iCopy">打印的份数</param>
        public void Print(bool IsPrintPreview,int iCopy)
        {
            if (iCopy < 1) 
            {
                iCopy=1;
            }
            exlWorkSheet.PrintOut(Missing.Value,Missing.Value,Missing.Value ,IsPrintPreview,iCopy ,Missing.Value ,Missing.Value,Missing.Value ) ;
        }
            
        /// <summary>
        /// 打印预览Excel文件
        /// </summary>
        public void PrintPreview()
        {
            exlWorkSheet.PrintPreview(Missing.Value) ;
        }
    
        #endregion

NONE

        #region " Detail control excel method "

        /// <summary>
        /// 将Excel隐藏
        /// </summary>
        public void Hide()
        {
            exlApp.Visible =false;
        }

设置或检索表格的caption对象是在表格的那一边

        /// <summary>
        /// 将Excel显示
        /// </summary>
        public void Show()
        {
            exlApp.Visible =true;
        }
    
        /// <summary>
        /// 设置工作簿的名称
        /// </summary>
        /// <param name="WorkSheet"></param>
        public void SetWorkSheetName(string WorkSheet)
        {
            exlWorkSheet.Name =WorkSheet;
        }

empty-cells

        /// <summary>
        ///返回指定单元格的内容 
        /// </summary>
        /// <param name="iRow">定位的行</param>
        /// <param name="iCol">定位的列</param>
        /// <returns>返回指定单元格的内容</returns>
        public string GetCellText(int iRow,int iCol)
        {
            Range sRange =exlWorkSheet.get_Range(iRow,iCol);
            string returnText  =(string)sRange.Text ;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange);
            sRange=null;
            return returnText;
        }

CSS2

        /// <summary>
        /// 设置指定范围单元格的内容,通过单元格,比如从"A1" 到 "B3"
        /// </summary>
        /// <param name="startCell">开始的单元格,比如"A1"</param>
        /// <param name="endCell">结束的单元格,比如"B2"</param>机动车统计表.xlt
        /// <param name="text">要设置的内容,可以使用Excel的公式</param>
        public void SetCellText(string startCell,string endCell,string text)
        {
            Range sRange =exlWorkSheet.get_Range(startCell,endCell);
            //这里没有用value属性,而用Formula属性,因为考虑到可以扩展,可以利用公式
            sRange.Cells.Formula=text;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange);
            sRange=null;
        }
        
        /// <summary>
        /// 设置指定范围的单元格的内容,通过行列来定位。如第1行第2列内容
        /// </summary>
        /// <param name="iRow">开始的行</param>
        /// <param name="iCol">开始的列</param>
        ///<param name="text">要设置的文本,可以使用Excel的公式</param>
        public void SetCellText(int iRow,int iCol,string text)
        {
            Range sRange=this.GetRange(iRow,iCol,iRow,iCol);
            sRange.Cells.Formula=text;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }

NONE

        /// <summary>
        /// 设置指定单元格的内容,比如设置"A1"单元格的内容
        /// </summary>
        /// <param name="cell">指定的单元格</param>
        /// <param name="text">要设置的内容,可以使用Excel的公式,如sum(A1:A7)--合计A1到A7数值</param>
        public void SetCellText(string cell,string text)
        {
            Range sRange=GetRange(cell);
            sRange.Cells.Formula=text;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }
            
        /// <summary>
        /// 设置指定单元格的内容
        /// </summary>
        /// <param name="cell">指定的单元格</param>
        /// <param name="num">要设置的内容</param>
        public void SetCellText(string cell,Int32 num)
        {
            Range sRange=GetRange(cell);
            sRange.Cells.Formula=num.ToString();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }                

        /// <summary>
        /// 设置指定单元格的内容,可以指定格式
        /// </summary>
        /// <param name="cell">要指定的单元格</param>
        /// <param name="textValue">要填写的内容</param>
        /// <param name="StringFormat">要显示的格式</param>
        ///<param name="FontName">设置单元格的字体</param>
        /// <param name="FontSize">设置单元格的字体大小</param>
        public void setCellTextByFormat(string cell,string textValue,string StringFormat,string FontName ,string FontSize)
        {
            Range sRange=GetRange(cell);
            sRange.Select();
            if (StringFormat!= "")
            {
                sRange.NumberFormatLocal = StringFormat;
            }
            if (FontName !="")
            {
                sRange.Font.Name = FontName;
            }
            if (FontSize !="")
            {
                sRange.Font.Size = FontSize;
            }
            sRange.Cells.Formula=textValue;

设置或检索当表格的单元格无内容时,是否显示该单元格的边框

            
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }

table-layout

        /// <summary>
        /// 设置指定单元格的内容,可以指定格式
        /// </summary>
        /// <param name="cell">要指定的单元格</param>
        /// <param name="textValue">要填写的内容</param>
        /// <param name="StringFormat">要显示的格式</param>
        ///<param name="FontName">设置单元格的字体</param>
        /// <param name="FontSize">设置单元格的字体大小</param>
        /// <param name="colorIndex">设置单元格的颜色,我查了MSDN但是没有颜色代码的说明,Excel中一共有56种颜色的代码,常用的几个是
        /// 1-黑色 2-白色 3-红色 4-草绿色 5-蓝色 6-黄色 7-紫色 ,如果想看仔细的颜色,就依次从 1 循环到 56 把颜色打印出来看看</param>
        public void setCellTextByFormat(string cell,string textValue,string StringFormat,string FontName ,string FontSize,int colorIndex)
        {
            Range sRange=GetRange(cell);
            sRange.Select();
            if (StringFormat!= "")
            {
                sRange.Cells.NumberFormatLocal = StringFormat;
            }
            if (FontName !="")
            {
                sRange.Font.Name = FontName;
            }
            if (FontSize !="")
            {
                sRange.Font.Size = FontSize;
            }
            if(colorIndex !=0 )
            {
                sRange.Font.ColorIndex = colorIndex;
            }
            sRange.Cells.Formula=textValue;
        
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }
        /// <summary>
        /// 设置单元格的内容(指定单元格的格式化字符串)
        /// </summary>
        /// <param name="cell">指定的单元格</param>
        /// <param name="textValue">内容</param>
        /// <param name="stringFormat">格式化字符串</param>
        public void setCellText(string cell,string textValue,string stringFormat)
        {
            Range sRange=GetRange(cell);
            sRange.Select();
            if (stringFormat!= "")
            {
                sRange.Cells.NumberFormatLocal  = stringFormat;
            }
            sRange.Cells.Formula=textValue;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }
        /// <summary>
        /// 得到指定单元格的内容
        /// </summary>
        /// <param name="cell">指定的单元格比如 A1,A2</param>
        /// <returns>返回指定的内容</returns>
        public object GetCellText(string cell)
        {
            object returnValue;
            Range sRange=GetRange(cell);
            returnValue= sRange.Cells.Text;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
            return returnValue;            
        }
        
        /// <summary>
        /// 设置指定单元格的内容,比如设置"A1"单元格的内容
        /// </summary>
        /// <param name="cell">指定的单元格</param>
        /// <param name="text">要设置的内容,使用Excel里面的R1C1这样的格式(不知道是不是画蛇添足,因为Excel里的Macro中是这样使用的)</param>
        public void SetCellTextR1C1(string cell,string text)
        {
            Range sRange=GetRange(cell);
            sRange.Cells.FormulaR1C1 =text;
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
            sRange=null;
        }

CSS2

        /// <summary>
        ///设置单元格的单元格格式 
        /// </summary>
        /// <param name="cell">要设定的单元格的坐标</param>
        /// <param name="formatString">单元格的格式化字符    
        /// 常规:"G/通用格式"
        /// 数值:"[红色]-0.00"(表示是2位小数,如果是负数的话则用红色表示)
        /// 货币:"¥#,##0.000;[红色]¥-#,##0.000"(¥是货币符号,可以用$,也可以不填写,0.000代表三位小数位;[红色]表示如果是负数的话,用红色表示)
        /// 日期:@"yyyy"年"m"月"d"日";@"    (表示用年月日了表示)        @"[DBNum1][$-804]yyyy"年"m"月"d"日";@"(表示用汉字表示年月日)
        /// 百分比:"0.000%;[红色]-0.000%"(表示小数位为3位,红色表示如果是负数的话则用红色表示)
        /// 文本:"@"(表示是文本格式)
        /// 特殊:"[DBNum1][$-804]G/通用格式"(能将数字转换成中文小写,如1234转换成一千二百三十四)        "[DBNum2][$-804]G/通用格式"(能将数字转换成中文大写,如1234转换成 壹仟贰佰叁拾肆)
        /// 自定义:输入自定义的格式化字符串
        /// </param>
        public void SetCellFormat(string cell,string formatString)
        {
            Range sRange=GetRange(cell);
            sRange.Select();
            sRange.NumberFormatLocal=formatString; 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange);
            sRange=null;
        }

IE5+

        /// <summary>
        /// 设置指定范围的单元格格式
        /// </summary>
        /// <param name="startCell">开始的单元格</param>
        /// <param name="endCell">结束的单元格</param>
        /// <param name="formatString">单元格的格式化字符    
        /// 常规:"G/通用格式"
        /// 数值:"[红色]-0.00"(表示是2位小数,如果是负数的话则用红色表示)
        /// 货币:"¥#,##0.000;[红色]¥-#,##0.000"(¥是货币符号,可以用$,也可以不填写,0.000代表三位小数位;[红色]表示如果是负数的话,用红色表示)
        /// 日期:@"yyyy"年"m"月"d"日";@"    (表示用年月日了表示)        @"[DBNum1][$-804]yyyy"年"m"月"d"日";@"(表示用汉字表示年月日)
        /// 百分比:"0.000%;[红色]-0.000%"(表示小数位为3位,红色表示如果是负数的话则用红色表示)
        /// 文本:"@"(表示是文本格式)
        /// 特殊:"[DBNum1][$-804]G/通用格式"(能将数字转换成中文小写,如1234转换成一千二百三十四)        "[DBNum2][$-804]G/通用格式"(能将数字转换成中文大写,如1234转换成 壹仟贰佰叁拾肆)
        /// 自定义:输入自定义的格式化字符串</param>
        public void SetAreaCellFormat(string startCell,string endCell,string formatString)
        {
            Range sRange=GetRange(startCell,endCell);
            sRange.Select();
            sRange.NumberFormatLocal=formatString; 
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange);
            sRange=null;
        }

        /// <summary>
        /// 设置某一列,某几列的列宽为自动适应大小,比如要设置第1列为自动适应大小SetColumnAutoFit("A","A")
        /// </summary>
        /// <param name="startColumn">开始的列</param>
        /// <param name="endColumn">结束的列</param>
        /// 
        //TODO:stapangpang  要增加自动适应列大小的方法
        public void SetColumnAutoFit(string startColumn,string endColumn)
        {
            Range sRange =(Range)exlWorkSheet.Columns[String.Format("{0}:{1}",startColumn,endColumn),Missing.Value];
            sRange.Select();
            sRange.EntireColumn.AutoFit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange);
            sRange=null;    
        }
        #endregion

设置或检索表格的布局算法

        #region " Get excel range method definition "

speak-header

        /// <summary>
        /// 根据行列的定位,返回选定的单元格。因为Range 是通过Cell来定位的,而Cell需要2个参数定位,所以需要四个参数。                
        /// </summary>
        /// <param name="iStartRow">定位开始Range的Cell的行</param>
        /// <param name="iStartCol">定位开始Range的Cell的列</param>
        /// <param name="iEndRow">定位结束Range的Cell的行</param>
        /// <param name="iEndCol">定位结束Range的Cell的列</param>
        /// <returns>返回指定范围的Range</returns>
        public Range GetRange(int iStartRow,int iStartCol,int iEndRow,int iEndCol)
        {
            return exlWorkSheet.get_Range(exlApp.Cells[iStartRow,iStartCol],exlApp.Cells[iEndRow,iEndCol]);
        }
            
        /// <summary>
        /// 返回指定的单元格
        /// </summary>
        /// <param name="cell">指定的单元格</param>
        /// <returns>返回指定的单元格</returns>
        public Range GetRange(string cell)
        {
            return exlWorkSheet.get_Range(cell,Missing.Value) ;
        }

CSS2

        /// <summary>
        /// 返回一个单元格的范围
        /// </summary>
        /// <param name="startCell">开始的单元格坐标</param>
        /// <param name="endCell">结束的单元格坐标</param>
        /// <returns>返回指定的单元格范围</returns>
        public Range GetRange(string startCell,string endCell)
        {
            return exlWorkSheet.get_Range(startCell,endCell);
        }

NONE

        /// <summary>
        /// 增加一个工作簿
        /// </summary>
        public void AddWorkSheet()
        {
            if (this.sheetNumber <=3)
            {
                exlApp.ActiveWorkbook.Sheets.Add(Missing.Value ,Missing.Value ,Missing.Value ,Missing.Value );
                exlWorkSheet=(Worksheet)exlWorkBook.ActiveSheet; 
                exlWorkSheet.Select(Missing.Value);
            }
            else
            {
                sheetNumber++;
                exlApp.ActiveWorkbook.Sheets.Add(Missing.Value ,Missing.Value ,Missing.Value ,Missing.Value );
                exlWorkSheet=(Worksheet)exlWorkBook.ActiveSheet; 
                exlWorkSheet.Select(Missing.Value);
            }
                //exlWorkBook.ActiveSheet;
        
        }

    
        #endregion
        
        #region " Excel range style method definition "
            /// <summary>
            /// 设置单元格的垂直方向对齐方式
            /// </summary>
            /// <param name="cell">指定的单元格</param>
            /// <param name="cellAlignment">垂直方向的对齐方式</param>
            public void SetCellVerticalAlignment(string cell, ExcelVerticalAlignment cellAlignment)
            {
                Range sRange=GetRange(cell);
                sRange.Select();
                sRange.VerticalAlignment = cellAlignment;
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;
            }

设置或检索表格头与其后的一系列单元格发生多少次关系

            /// <summary>
            /// 设定指定范围的单元格的垂直对齐方式
            /// </summary>
            /// <param name="startCell">开始的单元格的坐标</param>
            /// <param name="endCell">结束单元格的坐标</param>
            /// <param name="cellAlignment">对齐方式</param>
            public void SetCellAreaVerticalAlignment(string startCell,string endCell,ExcelVerticalAlignment cellAlignment)
            {
                Range sRange =GetRange(startCell,endCell);
                sRange.Select();
                sRange.VerticalAlignment = cellAlignment;
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;
            }             

border-collapse

            /// <summary>
            /// 设置指定范围的单元格的水平方向的对齐方式
            /// </summary>
            /// <param name="cell">指定的单元格</param>
            /// <param name="cellAlignment">水平方向的对齐方式</param>
            public void SetCellHorizontalAlignment(string cell,ExcelHorizontalAlignment cellAlignment)
            {
                Range sRange=GetRange(cell);
                sRange.Select();
                sRange.HorizontalAlignment = cellAlignment;
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;
            }
            
            /// <summary>
            /// 设定指定范围的单元格的水平对齐方式
            /// </summary>
            /// <param name="startCell">开始的单元格的坐标</param>
            /// <param name="endCell">结束单元格的坐标</param>
            /// <param name="cellAlignment">对齐方式</param>
            public void SetCellAreaHorizontalAlignment(string startCell,string endCell,ExcelHorizontalAlignment cellAlignment)
            {
                Range sRange=GetRange(startCell,endCell);
                sRange.Select();
                sRange.HorizontalAlignment = cellAlignment;
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;
            }

语法: border-collapse : separate | collapse

            /// <summary>
            /// 设置指定单元格的边框,这里只能设置单个单元格的边框
            /// </summary>
            /// <param name="cell">要设定的单元格</param>
            public void SetCellBorder(string cell)
            {
                Range sRange=GetRange(cell);
                
                
                //上边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeTop].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeTop].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeTop].ColorIndex =Excel.Constants.xlAutomatic ;
                //底边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeBottom].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeBottom].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeBottom].ColorIndex =Excel.Constants.xlAutomatic ;
                //右边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeRight].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeRight].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeRight].ColorIndex =Excel.Constants.xlAutomatic ;
                //左边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeLeft].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeLeft].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeLeft].ColorIndex =Excel.Constants.xlAutomatic ;
                
                //释放资源
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;
            }

 

            /// <summary>
            /// 设置指定范围的Excel单元格的边框,包括外边框,内边框
            /// </summary>
            /// <param name="startCell">开始的单元格坐标</param>
            /// <param name="endCell">结束的单元格坐标</param>
            public void SetAreaBorder(string startCell,String endCell)
            {
                Range sRange= GetRange(startCell,endCell);
                //上边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeTop].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeTop].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeTop].ColorIndex =Excel.Constants.xlAutomatic ;
                //底边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeBottom].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeBottom].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeBottom].ColorIndex =Excel.Constants.xlAutomatic ;
                //右边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeRight].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeRight].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeRight].ColorIndex =Excel.Constants.xlAutomatic ;
                //左边框
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeLeft].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeLeft].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.EdgeLeft].ColorIndex =Excel.Constants.xlAutomatic ;
                //范围内水平横线
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.InsideHorizontal].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.InsideHorizontal].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.InsideHorizontal].ColorIndex =Excel.Constants.xlAutomatic ;
                
                //范围内竖直竖线
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.InsideVertical].LineStyle =ExcelStyleLine.Continious ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.InsideVertical].Weight = ExcelBorderWeight.Thin ;
                sRange.Borders[(Excel.XlBordersIndex)ExcelBordersIndex.InsideVertical].ColorIndex =Excel.Constants.xlAutomatic ;                 

参数: 

                //释放资源
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;
            }
            
            /// <summary>
            /// 设置单元格的颜色
            /// </summary>
            /// <param name="cell">定位改单元格</param>
            /// <param name="colorIndex">颜色的代码,我查了MSDN但是没有颜色代码的说明,Excel中一共有56种颜色的代码,常用的几个是
            /// 1-黑色 2-白色 3-红色 4-草绿色 5-蓝色 6-黄色 7-紫色 ,如果想看仔细的颜色,就依次从 1 循环到 56 把颜色打印出来看看</param>
            public void SetCellBackGroundColor(string cell,int colorIndex)
            {    
                Range sRange =GetRange(cell);
                sRange.Select();
                sRange.Font.ColorIndex = colorIndex;
                //释放资源
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange) ;
                sRange=null;                
            }

separate :  边框独立(标准HTML)

            /// <summary>
            /// 设置指定单元格范围的颜色
            /// </summary>
            /// <param name="startCell">开始的单元格</param>
            /// <param name="endCell">结束的单元格</param>
            /// <param name="colorIndex">颜色的代码,我查了MSDN但是没有颜色代码的说明,Excel中一共有56种颜色的代码,常用的几个是
            /// 1-黑色 2-白色 3-红色 4-草绿色 5-蓝色 6-黄色 7-紫色 ,如果想看仔细的颜色,就依次从 1 循环到 56 把颜色打印出来看看</param>
            public void SetAreaCellBackGroundColor(string startCell ,string endCell,int colorIndex)
            {
                Range sRange=GetRange(startCell,endCell);
                sRange.Select();
                sRange.Font.ColorIndex =colorIndex;
                System.Runtime.InteropServices.Marshal.ReleaseComObject(sRange);
                sRange=null;

rtl :  相邻边被合并

            }

 

        #endregion

说明: 

    }
}

设置或检索表格的行和单元格的边是合并在一起还是按照标准的HTML样式分开。

对应的脚本特性为borderCollapse。请参阅我编写的其他书目。

 

示例: table { border-collapse: separate; }

border-spacing

语法: border-spacing : length || length

 

参数: length :  由浮点数字和单位标识符组成的长度值。不可为负值。请参阅长度单位

 

说明: 

设置或检索当表格边框独立(例如当border-collapse属性等于separate时),行和单元格的边框在横向和纵向上的间距。

当只指定一个length值时,这个值将作用于横向和纵向上的间距。当指定了全部两个length值时,第一个作用于横向间距,第二个作用于纵向间距。

目前IE5.5尚不支持此属性。

对应的脚本特性为borderSpacing。请参阅我编写的其他书目。

 

示例: table { border-collapse: separate; border-spacing: 10px; }

caption-side

语法: caption-side : bottom | left |right | top

 

参数: 

bottom :  下面 left :  左边 right :  右边 top :  下面 

说明: 

设置或检索表格的caption对象是在表格的那一边。它是和caption对象一起使用的属性。

目前IE5.5尚不支持此属性。

对应的脚本特性为captionSide。请参阅我编写的其他书目。

 

示例: table caption { caption-side: top; width: auto; text-align: left; }

 

empty-cells

语法: empty-cells : hide | show

 

参数: hide :  隐藏 show :  显示

 

说明: 

设置或检索当表格的单元格无内容时,是否显示该单元格的边框。

只有当表格边框独立(例如当border-collapse属性等于separate时)此属性才起作用。

目前IE5.5尚不支持此属性。

对应的脚本特性为emptyCells。请参阅我编写的其他书目。

 

示例: table { caption-side: top; width: auto; border-collapse: separate; empty-cells: hide; }

 

table-layout

语法: table-layout : auto | fixed

 

参数: 

auto :  默认的自动算法。布局将基于各单元格的内容。表格在每一单元格读取计算之后才会显示出来。速度很慢

fixed :  固定布局的算法。在这算法中,水平布局是仅仅基于表格的宽度,表格边框的宽度,单元格间距,列的宽度,而和表格内容无关

 

说明:

设置或检索表格的布局算法。

对应的脚本特性为tableLayout。请参阅我编写的其他书目。

 

示例: table { table-layout: auto; }

 

speak-header

语法: speak-header : once | always

 

参数:

once :  所有的单元格只有一个表格头

fixed :  每一组单元格对应一个表头

 

说明: 

设置或检索表格头与其后的一系列单元格发生多少次关系。

目前IE5.5尚不支持此属性。

对应的脚本特性为speakHeader。请参阅我编写的其他书目。

 

示例: table { speak-header: once }

滚动条属性

Scrollbar Properties
属性

CSS Version
版本

Compatibility
兼容性

Inherit From Parent
继承性

Description
简介

scrollbar-3d-light-color

IE专有属性

IE5.5+

设置或检索滚动条亮边框颜色

scrollbar-highlight-color

IE专有属性

IE5.5+

设置或检索滚动条3D界面的亮边(ThreedHighlight)颜色

scrollbar-face-color

IE专有属性

IE5.5+

设置或检索滚动条3D表面(ThreedFace)的颜色

scrollbar-arrow-color

IE专有属性

IE5.5+

设置或检索滚动条方向箭头的颜色

scrollbar-shadow-color

IE专有属性

IE5.5+

设置或检索滚动条3D界面的暗边(ThreedShadow)颜色

scrollbar-dark-shadow-color

IE专有属性

IE5.5+

设置或检索滚动条暗边框(ThreedDarkShadow)颜色

scrollbar-base-color

IE专有属性

IE5.5+

设置或检索滚动条基准颜色。其它界面颜色将据此自动调整

scrollbar-3d-light-color

语法: scrollbar-3d-light-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明: 

设置或检索滚动条亮边框颜色。

请参阅overflow属性。

对应的脚本特性为scrollbar3dLightColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-3d-light-color :threedhighlight; }

 

scrollbar-highlight-color

语法: scrollbar-highlight-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明: 

设置或检索滚动条3D界面的亮边(ThreedHighlight)颜色。

请参阅overflow属性。

对应的脚本特性为scrollbarHighlightColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-highlight-color :threedhighlight; }

scrollbar-face-color

语法: scrollbar-face-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明: 

设置或检索滚动条3D表面(ThreedFace)的颜色。

请参阅overflow属性。

对应的脚本特性为scrollbarFaceColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-face-color : threedface; }

scrollbar-arrow-color

语法: scrollbar-arrow-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明: 

设置或检索滚动条方向箭头的颜色。当滚动条出现但不可用时,此属性失效。

请参阅overflow属性。

对应的脚本特性为scrollbarArrowColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-arrow-color : buttontext; }

 

scrollbar-shadow-color

语法: scrollbar-shadow-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明:

设置或检索滚动条3D界面的暗边(ThreedShadow)颜色。

请参阅overflow属性。

对应的脚本特性为scrollbarShadowColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-shadow-color :ThreedDarkShadow; }

scrollbar-dark-shadow-color 

语法: scrollbar-dark-shadow-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明: 

设置或检索滚动条暗边框(ThreedDarkShadow)颜色。

请参阅overflow属性。

对应的脚本特性为scrollbarDarkShadowColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-dark-shadow-color :threeddarkshadow; }

 

scrollbar-base-color

语法: scrollbar-base-color : color

 

参数: color :  指定颜色。请参阅颜色单位和附录:颜色表

 

说明: 

设置或检索滚动条基准颜色。其它界面颜色将据此自动调整。

请参阅overflow属性。

对应的脚本特性为scrollbarBaseColor。请参阅我编写的其他书目。

 

示例: div {scrollbar-base-color : buttonface; }

 

打印属性

Printing Properties
属性

CSS Version
版本

Compatibility
兼容性

Inherit From Parent
继承性

Description
简介

page

CSS2

IE5.5+

检索或指定显示对象容器时使用的页面类型(pagetype)。参阅@page规则

page-break-after

CSS2

IE4+

检索或设置对象后出现的页分割符

page-break-before

CSS2

IE4+

检索或设置对象前出现的页分割符

page-break-inside

CSS2

NONE

检索或设置对象容器中出现的页分割符

marks

CSS2

NONE

设置或检索什么样的标志是应该在页容器外边被给予

orphans

CSS2

NONE

设置或检索对象内容内一定要留在一页范围底端以内的行的最少数量

size

CSS2

NONE

检索或指定页面规格的调整

widows

CSS2

NONE

检索或指定一定要留在页面顶部的行数

page

语法: page : auto | pagetype

 

参数: 

auto :  参照当前的默认页面

pagetype :  指定@page规则里的一个页面类型(pagetype)定义

 

说明: 

检索或指定显示对象容器时使用的页面类型(pagetype)。参阅@page规则。

对应的脚本特性为page。请参阅我编写的其他书目。

 

示例: 

@page doublepage { size: 8.5in 11in; page-break-after: left }

body { page: doublepage; page-break-after: right }

 

page-break-after

语法: page-break-after : auto | always | avoid | left | right | null

 

参数: 

auto :  假如需要在对象之后插入页分割符

always :  始终在对象之后插入页分割符

avoid :  避免在对象后面插入页分割符

left :  在对象后面插入页分割符直到它到达一个空白的左页边

right :  在对象后面插入页分割符直到它到达一个空白的右页边

null :  空值。IE5用来取消页分割符设置

 

说明:

 检索或设置对象后出现的页分割符。

IE5仅支持always值和空白值(null)。

在IE4中此属性不作用于br对象,但是IE5作用。

对应的脚本特性为pageBreakAfter。请参阅我编写的其他书目。

 

示例: p { page-break-after: always;}

page-break-before

语法: page-break-before : auto | always | avoid | left | right | null

 

参数: 

auto :  假如需要在对象之前插入页分割符

always :  始终在对象之前插入页分割符

avoid :  避免在对象前面插入页分割符

left :  在对象前面插入页分割符直到它到达一个空白的左页边

right :  在对象前面插入页分割符直到它到达一个空白的右页边

null :  空值。IE5用来取消页分割符设置

 

说明: 

检索或设置对象前出现的页分割符。

IE5仅支持always值和空白值(null)。

在IE4中此属性不作用于br对象,但是IE5作用。

对应的脚本特性为pageBreakBefore。请参阅我编写的其他书目。

 

示例: p { page-break-after: always;}

 

page-break-inside

语法: page-break-inside : auto | avoid

 

参数: 

auto :  假如需要在对象容器中插入页分割符

avoid :  使当前对象容器中禁止插入页分割符

 

说明: 

检索或设置对象容器中出现的页分割符。

目前IE5.5尚不支持此属性。

对应的脚本特性为pageBreakInside。请参阅我编写的其他书目。

 

示例: p { page-break-inside: auto }

 

marks

语法: marks : none | crop || cross

 

参数: 

none :  无页标记出现

crop :  在页面将会被裁切处指定切割标记

cross :  指定交叉线标记用来供页面对齐

 

说明: 

印刷业的印刷文档通常在页面内容区域外带有一些标记,用来校正和调整所有的页面。此属性用来设置或检索什么样的标志是应该在页容器外边被给予。

目前IE5.5尚不支持此属性。

对应的脚本特性为marks。请参阅我编写的其他书目。

 

示例: body { marks: crop cross }

orphans

语法: orphans : number

 

参数: number :  整数

 

说明: 

设置或检索对象内容内一定要留在一页范围底端以内的行的最少数量。

目前IE5.5尚不支持此属性。

对应的脚本特性为orphans。请参阅我编写的其他书目。

 

示例: p { orphans: 4; }

size

语法: size : auto | portrait | landscape | length

 

参数: 

auto :  指定为适应目标纸张尺寸和方向的relative页面容器

portrait :  指定为适应目标纸张尺寸和方向的relative页面容器,不理会目标页的当前缺省的内容方向,使用文档流从左到右短距离跨越,向下长距离跨越的典型范例(纵向方式)

landscape :  指定为适应目标纸张尺寸和方向的relative页面容器,不理会目标页的当前缺省的内容方向,使用横向方式

length :  由浮点数字和单位标识符组成的长度值。指定为固定尺寸和方向的absolute页面容器。只有一个参数,则指定高度和宽度。用空格分开的两个,第一个指定高度,第二个指定宽度。请参阅长度单位

 

说明: 

检索或指定页面规格的调整。它把页面容器归类为absolute和relative两种。absolute页面有固定的尺寸。relative页面容器将会调整适应目标纸张的尺寸。

目前IE5.5尚不支持此属性。

对应的脚本特性为size。请参阅我编写的其他书目。

 

示例: body { size: 8.5in 11in }

widows

语法: widows : number

 

参数: number :  无单位整数。不可为负值

 

说明: 

检索或指定一定要留在页面顶部的行数。

目前IE5.5尚不支持此属性。

对应的脚本特性为widows。请参阅我编写的其他书目。

 

示例: p { widows: 1 }

本文由10bet手机官网发布于高并发,转载请注明出处:WEB标准学习路程之,单元格为

上一篇:player不是最新版本,5安装Chromium谷歌浏览器 下一篇:没有了
猜你喜欢
热门排行
精彩图文