JS控制EXCEL的一些方法

 //===============================================================================================================================
//
// Excel 文档控制
//
// 使用提示
//
// 无需创建对象新对象,使用方法列表中的方法既可以控制,脚步中定义了xlObject(ActiveXObject),xlWork(工作簿对象)
// xlSheet(工作表对象),特殊功能可使用这三个对象控制。
//
// 方法列表
//
// InitExcel()           _初始化Excel文档
//
// OpenExcel(FileName)         _打开一个Excel模版,FileName是文件路径
//
// SaveAsExcel(FileName)        _保存一个Excel文档,FileName是保存路径,并作为字符串返回
//
// SetVisible(IsShow)         _设置前台或后台显示
//
// SetPage(Orientation)         _设置页面打印方式,1为纵向,2为横向
//
// SetFormat(AreaStr,FontName,FontSize,FontBold,FontItalic,HorAlignment,VerAlignment,Wrap)
//
//              _设置格式,支持单元格、列、区域
//
// SetMergeCells(AreaStr)        _合并单元格,仅支持区域
//
// SetColumnWidth(AreaStr,ColumnValue)     _设置列宽,支持单元格,列,区域,全部(区域参数为"all")
//
// SetRowHeight(AreaStr,HeightValue)     _设置行高,支持单元格,列,区域,全部(区域参数为"all")
//
// SetValue(AreaStr,AreaValue)       _设置区域的值,支持单元格,区域
//
// SetValueFormatToString(AreaStr)      _转化区域的输出类型为字符串型,支持单元格,列,区域,全部(区域参数为"all")
//
// SetValueFormatToCustom(AreaStr,regix)    _转化区域的输出类型为自定义型,支持单元格,列,区域,全部(区域参数为"all")
//
// SetBorder(AreaStr)         _设置区域的边线,支持单元格,列,区域
//
// SetUserControl(IsControl)       _控制权交给用户
//
// ClearExcel()           _清空对象
//
// QuitExcel()           _退出Excel
//
// PrintPreviewExcel()         _打印预览Excel
//
// PrintOutExcel()          _打印Excel
//===============================================================================================================================
//
// 定义了Excel操作对象
//-----------------------------------------------

var xlObject = null;
var xlWork = null;
var xlSheet = null;

//===============================================================================================================================
//
// 用于检测范围字符串的类型
// Cells:表示单元格;Columns:表示列;Range:表示区域
//-----------------------------------------------

function Check(AreaStr)
{
 var CellsPatrn = /^/d+[,]{1}/d+$/;
 var ColPatrn = /^([a-zA-Z]+[:]{1}[a-zA-Z]+)|([a-zA-Z]+)$/;
 var RangePatrn = /^[a-zA-Z]+/d+[:]{1}[a-zA-Z]+/d+$/;
 var AreaRet = "";
 if (CellsPatrn.exec(AreaStr))
 {
  AreaRet = "Cells";
 }
 if (ColPatrn.exec(AreaStr))
 {
  AreaRet = "Columns";
 }
 if (RangePatrn.exec(AreaStr))
 {
  AreaRet = "Range";
 }
 if (AreaStr == "all")
 {
  AreaRet = "all";
 }

 return AreaRet;
}

//===============================================================================================================================
//
// 用于转换表示单元格的字符串
// Cells:表示单元格;Columns:表示列;Range:表示区域
//-----------------------------------------------
function CellsFormat(CellsStr)
{
 var st = CellsStr.split(',');

 if (st.length == 2)
 {
  st[0] = parseInt(st[0]);
  st[1] = parseInt(st[1]);
 }

 return st;


//===============================================================================================================================
//
// 初始化一个Excel对象
//-----------------------------------------------

function InitExcel()
{
 try
 {
  xlObject = new ActiveXObject("Excel.Application");
 }
 catch (ex)
 {
  alert("Excel对象无法创建,请开启浏览器的ActiveX控键限制,并安装Excel2003!");
 }
 
 xlWork = xlObject.Workbooks.Add();
 xlSheet = xlWork.Worksheets(1);
}

//===============================================================================================================================
//
// 打开一个Excel模版
// FileName:标示文件路径
//-----------------------------------------------

function OpenExcel(FileName)
{
 try
 {
  if (FileName != "")
  {
   xlObject = new ActiveXObject("Excel.Application");
   xlWork = xlObject.Workbooks.Open(FileName);
   xlSheet = xlWork.Worksheets(1);
  }
  else
  {
   alert("Excel文件路径错误");
  }
 }
 catch (ex)
 {
  alert("Excel对象无法创建,请开启浏览器的ActiveX控键限制,并安装Excel2003!");
 }

//===============================================================================================================================
//
// 保存一个Excel模版
// FileName:标示文件路径
//-----------------------------------------------

function SaveAsExcel(FileName)
{
 var filename = "";
 try
 {
  if(FileName != "")
  {
   xlWork.SaveAs(FileName);
   xlWork.Close(savechanges=false);
   xlObject.Visible = false;
   xlObject.Quit;
   filename = FileName;
  }
  else
  {
   alert("保存路径发生错误");
   filename = ""
  }
 }
 catch (ex)
 {
  alert("Excel文件路径错误");
 }
 return filename;
}

//===============================================================================================================================
//
// 设置Excel前台运行和后台运行
//-----------------------------------------------

function SetVisible(IsShow)
{
 if(IsShow)
 {
  xlObject.visible = true;
 }
 else
 {
  xlObject.visible = false;
 }
}

//===============================================================================================================================
//
// 设置页面边距,Orientation:1表示纵向,2表示横向
//-----------------------------------------------

function SetPage(Orientation)
{
 if(Orientation == 2)
 {
  with(xlSheet.PageSetup)
    {
     Orientation  = 2 ;                 //横向
     LeftMargin   = xlObject.InchesToPoints( 0.748031496062992 ) ;
     RightMargin  = xlObject.InchesToPoints( 0.748031496062992 ) ; 
     TopMargin    = xlObject.InchesToPoints( 0.984251968503937 ) ;
     BottomMargin = xlObject.InchesToPoints( 0.984251968503937 ) ;
     HeaderMargin = xlObject.InchesToPoints( 0.511811023622047 ) ;
     FooterMargin = xlObject.InchesToPoints( 0.511811023622047 ) ;
  } 
 }
 else if(Orientation == 1)
 {
  with(xlSheet.PageSetup)
  {
   Orientation  = 1 ;                 //纵向
   LeftMargin   = xlObject.InchesToPoints( 0.748031496062992 );
   RightMargin   = xlObject.InchesToPoints( 0.748031496062992 );
   TopMargin     = xlObject.InchesToPoints( 0.984251968503937 );
   BottomMargin  = xlObject.InchesToPoints( 0.984251968503937 );
   HeaderMargin  = xlObject.InchesToPoints( 0.511811023622047 );
   FooterMargin  = xlObject.InchesToPoints( 0.511811023622047 );
  }
 }
}

//===============================================================================================================================
//
// 单元格设置字体
// AreaStr:表示范围的字符串
// FontName:字符串型,字体名称
// FontSize:整型,字体大小
// FontBold:Bool型,True表示加粗
// FontItalic:Bool型,True表示斜体
// HorAlignment:整型,1是常规,2 是左,3 中,4 右
// VerAlignment:整型,1 上,2 中,3 下
// Wrap:Bool型,True表示自动换行
//-----------------------------------------------

function SetFormat(AreaStr,FontName,FontSize,FontBold,FontItalic,HorAlignment,VerAlignment,Wrap)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "")
 {
  switch(CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);

   if(FontName != "")
   {
    xlSheet.Cells(Cell[0],Cell[1]).Font.Name = FontName;
   }
   if(FontSize != null)
   {
    xlSheet.Cells(Cell[0],Cell[1]).Font.Size = FontSize;
   }
   if(FontBold != false)
   {
    xlSheet.Cells(Cell[0],Cell[1]).Font.Bold = true;
   }
   if(FontItalic != false)
   {
    xlSheet.Cells(Cell[0],Cell[1]).Font.Italic = true;
   }
   if(HorAlignment != null)
   {
    xlSheet.Cells(Cell[0],Cell[1]).HorizontalAlignment = HorAlignment;
   }
   if(VerAlignment != null)
   {
    xlSheet.Cells(Cell[0],Cell[1]).VerticalAlignment = VerAlignment;
   }
   if(Wrap != false)
   {
    xlSheet.Cells(Cell[0],Cell[1]).WrapText = true;
   }
   break;


   case "Columns" :
   if(FontName != "")
   {
    xlSheet.Columns(AreaStr).Font.Name = FontName;
   }
   if(FontSize != null)
   {
    xlSheet.Columns(AreaStr).Font.Size = FontSize;
   }
   if(FontBold != false)
   {
    xlSheet.Columns(AreaStr).Font.Bold = true;
   }
   if(FontItalic != false)
   {
    xlSheet.Columns(AreaStr).Font.Italic = true;
   }
   if(HorAlignment != null)
   {
    xlSheet.Columns(AreaStr).HorizontalAlignment = HorAlignment;
   }
   if(VerAlignment != null)
   {
    xlSheet.Columns(AreaStr).VerticalAlignment = VerAlignment;
   }
   if(Wrap != false)
   {
    xlSheet.Columns(AreaStr).WrapText = true;
   }
   break;


   case "Range":
   if(FontName != "")
   {
    xlSheet.Range(AreaStr).Font.Name = FontName;
   }
   if(FontSize != null)
   {
    xlSheet.Range(AreaStr).Font.Size = FontSize;
   }
   if(FontBold != false)
   {
    xlSheet.Range(AreaStr).Font.Bold = true;
   }
   if(FontItalic != false)
   {
    xlSheet.Range(AreaStr).Font.Italic = true;
   }
   if(HorAlignment != null)
   {
   xlSheet.Range(AreaStr).HorizontalAlignment = HorAlignment;
   }
   if(VerAlignment != null)    
   {
    xlSheet.Range(AreaStr).VerticalAlignment = VerAlignment;
   }
   if(Wrap != false)
   {
     xlSheet.Range(AreaStr).WrapText = true;
   }
   break;
  }
 }
}

//===============================================================================================================================
//
// 合并单元格
// AreaStr:表示范围的字符串
//-----------------------------------------------

function SetMergeCells(AreaStr)
{
 var CheckStr = Check(AreaStr);

 if (CheckStr != "")
 {
  if(CheckStr == "Range")
  {
   xlSheet.range(AreaStr).MergeCells = true;
  }
 }
}

//===============================================================================================================================
//
// 设置列宽
// AreaStr:设置范围,如:"A:D"
// ColumnValue:列宽值
//-----------------------------------------------

function SetColumnWidth(AreaStr,ColumnValue)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "")
 {
  switch (CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);

   xlSheet.Cells(Cell[0],Cell[1]).ColumnWidth = ColumnValue;
   break;


   case "Columns":
   xlSheet.Columns(AreaStr).ColumnWidth = ColumnValue;
   break;


   case "Range":
   xlSheet.range(AreaStr).ColumnWidth = ColumnValue;
   break; 
   
   case "all":
   xlSheet.Cells.ColumnWidth = ColumnValue;
   break;
  }
 }
}

//===============================================================================================================================
//
// 设置行高
// AreaStr:范围标示
// HeightValue:行高值
//-----------------------------------------------

function SetRowHeight(AreaStr,HeightValue)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "")
 {
  switch (CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);
   xlSheet.Cells(Cell[0],Cell[1]).RowHeight = HeightValue;
   break;


   case "Columns":
   xlSheet.Columns(AreaStr).RowHeight = HeightValue;
   break;


   case "Range":
   xlSheet.range(AreaStr).RowHeight = HeightValue;
   break; 
   
   case "all":
   xlSheet.Cells.RowHeight = HeightValue;
   break;
  }
 }
}

//===============================================================================================================================
//
// 设置单元格内容
// AreaStr:范围标示
// AreaValue:内容
//-----------------------------------------------

function SetValue(AreaStr,AreaValue)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "" && CheckStr != "Columns")
 {
  switch (CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);
   xlSheet.Cells(Cell[0],Cell[1]).value = AreaValue;
   break;


   case "Range":
   xlSheet.range(AreaStr).value = AreaValue;
   break; 
   
  }
 }
}

//===============================================================================================================================
//
// 设置单元格内容的格式 - 字符串型
// AreaStr:范围标示
//-----------------------------------------------

function SetValueFormatToString(AreaStr)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "")
 {
  switch (CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);
   xlSheet.Cells(Cell[0],Cell[1]).NumberFormatLocal = "@";
   break;

   
   case "Columns":
   xlSheet.Columns(AreaStr).NumberFormatLocal = "@";
   break;
   

   
   case "Range":
   xlSheet.range(AreaStr).NumberFormatLocal = "@";
   break; 
   
   
   case "all":
   xlSheet.Cells.NumberFormatLocal = "@";
   break;
   
  }
 }
}

//===============================================================================================================================
//
// 设置单元格内容的格式 - 自定义型
// AreaStr:范围标示
// regix:格式表达式
//-----------------------------------------------

function SetValueFormatToCustom(AreaStr,regix)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "")
 {
  switch (CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);
   xlSheet.Cells(Cell[0],Cell[1]).NumberFormatLocal = regix;
   break;

   
   case "Columns":
   xlSheet.Columns(AreaStr).NumberFormatLocal = regix;
   break;
   
      
   case "Range":
   xlSheet.range(AreaStr).NumberFormatLocal = regix;
   break; 
  }
 }
}

//===============================================================================================================================
//
// 设置范围的边框
// AreaStr:范围标示
//-----------------------------------------------

function SetBorder(AreaStr)
{
 var CheckStr = Check(AreaStr);

 if(CheckStr != "")
 {
  switch (CheckStr)
  {
   case "Cells":
   var Cell = CellsFormat(AreaStr);
   for (var i=1;i<5;i++)
   {
    xlSheet.Cells(Cell[0],Cell[1]).Borders(i).LineStyle = 1;
    xlSheet.Cells(Cell[0],Cell[1]).Borders(i).Weight = 2;
   }
   break;


   case "Columns":
   for (var i=7;i<13;i++)
   {
    xlSheet.Columns(AreaStr).Borders(i).LineStyle = 1;
    xlSheet.Columns(AreaStr).Borders(i).Weight = 2;
   }
   break;


   case "Range":
   for (var i=7;i<13;i++)
   {
    xlSheet.range(AreaStr).Borders(i).LineStyle = 1;
    xlSheet.range(AreaStr).Borders(i).Weight = 2;
   }
   break; 
  }
 }
}

//===============================================================================================================================
//
// 控制权交给用户
//-----------------------------------------------
function SetUserControl(IsControl)
{
 if(IsControl == true)
 {
  xlObject.UserControl = true
 }
}

//===============================================================================================================================
//
// 清空Excel对象
//-----------------------------------------------
function ClearExcel()
{
 try
 {
  xlObject = null;
  xlWork = null;
  xlSheet = null;
 }
 catch (ex)
 {
  throw ex;
 }
}

//===============================================================================================================================
//
// 关闭Excel对象
//---------------------------------------------
function QuitExcel()
{
 try
 {
  xlWork.Close(savechanges=false);
  xlObject.Quit();
  xlObject = null;
  xlWork = null;
  xlSheet = null;
 }
 catch(ex)
 {
  alert("发生错误,Excel无法退出");
 }
}

//===============================================================================================================================
//
// 打印预览Excel对象
//---------------------------------------------
function PrintPreviewExcel()
{
 try
 {
  xlSheet.PrintPreview();
 }
 catch(ex)
 {
  alert("发生错误,Excel无法打印预览");
 }
}

//===============================================================================================================================
//
// 打印Excel对象
//---------------------------------------------
function PrintOutExcel()
{
 try
 {
  xlSheet.PrintOut();
 }
 catch(ex)
 {
  alert("打印机未安装或发生错误,无法打印文档");
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值