• vbscript 中对excel常见操作


     vbs 对excel的操作 删除、修改单元格,设置字体、背景色
    dim oExcel,oWb,oSheet
    Set oExcel= CreateObject("Excel.Application")
    Set oWb = oExcel.Workbooks.Open("E:其他新装电话表.xls")
    Set oSheet = oWb.Sheets("Sheet1")
    MsgBox oSheet.Range("B2").Value '#提取单元格B2内容
    '.....
    3、如果是XP系统,可以使用如下代码
    Dim objFileDlg
    Set objFileDlg = CreateObject("UserAccounts.CommonDialog")
    objFileDlg.Filter = "Excel File (*.xls) |*.xls"
    If objFileDlg.ShowOpen Then
    msgbox "您选择的文件是:" & objFileDlg.FileName & vbCrLf
    End If
    VBS控制Excel的一些常见方法:
    (一) 使用动态创建的方法
    首先创建 Excel 对象,使用ComObj:
    oExcel = CreateObject( "Excel.Application" )
    1) 显示当前窗口:
    oExcel.Visible = True
    2) 更改 Excel 标题栏:
    oExcel.Caption = "应用程序调用 Microsoft Excel"
    3) 添加新工作簿:
    oExcel.WorkBooks.Add
    4) 打开已存在的工作簿:
    oExcel.WorkBooks.Open( "C:ExcelDemo.xls" )
    5) 设置第2个工作表为活动工作表:
    oExcel.WorkSheets(2).Activate

    oExcel.WorksSheets( "Sheet2" ).Activate
    6) 给单元格赋值:
    oExcel.Cells(1,4).Value = "第一行第四列"
    7) 设置指定列的宽度(单位:字符个数),以第一列为例:
    oExcel.ActiveSheet.Columns(1).ColumnsWidth = 5
    8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
    oExcel.ActiveSheet.Rows(2).RowHeight = 1/0.035 ' 1厘米
    9) 在第8行之前插入分页符:
    oExcel.WorkSheets(1).Rows(8).PageBreak = 1
    10) 在第8列之前删除分页符:
    oExcel.ActiveSheet.Columns(4).PageBreak = 0
    11) 指定边框线宽度:
    oExcel.ActiveSheet.Range( "B3:D4" ).Borders(2).Weight = 3
    1-左 2-右 3-顶 4-底 5-斜( ) 6-斜( / )
    12) 清除第一行第四列单元格公式:
    oExcel.ActiveSheet.Cells(1,4).ClearContents
    13) 设置第一行字体属性:
    oExcel.ActiveSheet.Rows(1).Font.Name = "隶书"
    oExcel.ActiveSheet.Rows(1).Font.Color = clBlue
    oExcel.ActiveSheet.Rows(1).Font.Bold = True
    oExcel.ActiveSheet.Rows(1).Font.UnderLine = True
    14) 进行页面设置:
    a.页眉:
    oExcel.ActiveSheet.PageSetup.CenterHeader = "报表演示"
    b.页脚:
    oExcel.ActiveSheet.PageSetup.CenterFooter = "第&P页"
    c.页眉到顶端边距2cm:
    oExcel.ActiveSheet.PageSetup.HeaderMargin = 2/0.035
    d.页脚到底端边距3cm:
    oExcel.ActiveSheet.PageSetup.HeaderMargin = 3/0.035
    e.顶边距2cm:
    oExcel.ActiveSheet.PageSetup.TopMargin = 2/0.035
    f.底边距2cm:
    oExcel.ActiveSheet.PageSetup.BottomMargin = 2/0.035
    g.左边距2cm:
    oExcel.ActiveSheet.PageSetup.LeftMargin = 2/0.035
    h.右边距2cm:
    oExcel.ActiveSheet.PageSetup.RightMargin = 2/0.035
    i.页面水平居中:
    oExcel.ActiveSheet.PageSetup.CenterHorizontally = 2/0.035
    j.页面垂直居中:
    oExcel.ActiveSheet.PageSetup.CenterVertically = 2/0.035
    k.打印单元格网线:
    oExcel.ActiveSheet.PageSetup.PrintGridLines = True
    15) 拷贝操作:
    a.拷贝整个工作表:
    oExcel.ActiveSheet.Used.Range.Copy
    b.拷贝指定区域:
    oExcel.ActiveSheet.Range( "A1:E2" ).Copy
    c.从A1位置开始粘贴:
    oExcel.ActiveSheet.Range.( "A1" ).PasteSpecial
    d.从文件尾部开始粘贴:
    oExcel.ActiveSheet.Range.PasteSpecial
    16) 插入一行或一列:
    a. oExcel.ActiveSheet.Rows(2).Insert
    b. oExcel.ActiveSheet.Columns(1).Insert
    17) 删除一行或一列:
    a. oExcel.ActiveSheet.Rows(2).Delete
    b. oExcel.ActiveSheet.Columns(1).Delete
    18) 打印预览工作表:
    oExcel.ActiveSheet.PrintPreview
    19) 打印输出工作表:
    oExcel.ActiveSheet.PrintOut
    20) 工作表保存:
    if not oExcel.ActiveWorkBook.Saved then
    oExcel.ActiveSheet.PrintPreview
    21) 工作表另存为:
    oExcel.SaveAs( "C:ExcelDemo1.xls" )
    22) 放弃存盘:
    oExcel.ActiveWorkBook.Saved = True
    23) 关闭工作簿:
    oExcel.WorkBooks.Close
    24) 退出 Excel:
    oExcel.Quit
    (二) 使用VBS 控制Excle二维图
    1)选择当第一个工作薄第一个工作表
    set oSheet=oExcel.Workbooks(1).Worksheets(1)
    2)增加一个二维图
    achart=oSheet.chartobjects.add(100,100,200,200)
    3)选择二维图的形态
    achart.chart.charttype=4
    4)给二维图赋值
    set series=achart.chart.seriescollection
    range="sheet1!r2c3:r3c9"
    series.add range,true
    5)加上二维图的标题
    achart.Chart.HasTitle=True
    achart.Chart.ChartTitle.Characters.Text=" Excle二维图"
    6)改变二维图的标题字体大小
    achart.Chart.ChartTitle.Font.size=18
    7)给二维图加下标说明
    achart.Chart.Axes(xlCategory, xlPrimary).HasTitle = True
    achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "下标说明"
    8)给二维图加左标说明
    achart.Chart.Axes(xlValue, xlPrimary).HasTitle = True
    achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "左标说明"
    9)给二维图加右标说明
    achart.Chart.Axes(xlValue, xlSecondary).HasTitle = True
    achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "右标说明"
    10)改变二维图的显示区大小
    achart.Chart.PlotArea.Left = 5
    achart.Chart.PlotArea.Width = 223
    achart.Chart.PlotArea.Height = 108

    这个是vbscript的,方法在javascript里都是通用的,不过语法略有不同希望对你有帮助
    1、 建立Excel对象
    set objExcelApp = CreateObject("Excel.Application")
    objExcelApp.DisplayAlerts = false 不显示警告
    objExcelApp.Application.Visible = false 不显示界面
    2、 新建Excel文件
    objExcelApp.WorkBooks.add
    set objExcelBook = objExcelApp.ActiveWorkBook
    set objExcelSheets = objExcelBook.Worksheets
    set objExcelSheet = objExcelBook.Sheets(1)
    3、 读取已有Excel文件
    strAddr = Server.MapPath(".")
    objExcelApp.WorkBooks.Open(strAddr & "TempletTable.xls")
    set objExcelBook = objExcelApp.ActiveWorkBook
    set objExcelSheets = objExcelBook.Worksheets
    set objExcelSheet = objExcelBook.Sheets(1)
    4、 另存Excel文件
    objExcelBook.SaveAs strAddr & "TempTable.xls"
    5、 保存Excel文件
    objExcelBook.Save (笔者测试时保存成功,页面报错。)
    6、 退出Excel操作
    objExcelApp.Quit 一定要退出
    set objExcelApp = Nothing
    三、 ASP操作Excel生成数据表
    1、 在一个范围内插入数据
    objExcelSheet.Range("B3:k3").Value = Array("67", "87", "5", "9", "7", "45", "45", "54", "54", "10")
    2、 在一个单元格内插入数据
    objExcelSheet.Cells(3,1).Value="Internet Explorer"
    3、 改变单元格文字颜色
    objExcelSheet.Cells(3,1).Font.Color=vbred
    4、 单元格四周画线条
    objExcelSheet.Cells(3.1).Borders(1).LineStyle =1
    objExcelSheet.Cells(3.1).Borders(2).LineStyle =1
    objExcelSheet.Cells(3.1).Borders(3).LineStyle =1
    objExcelSheet.Cells(3.1).Borders(4).LineStyle =1
    区域中间画线条
    objExcelSheet.Range(“A1:G7”).Borders(7).LineStyle =1
    objExcelSheet.Range(“A1:G7”).Borders(8).LineStyle =1

    8、 单元格设定背景色
    objExcelSheet.Cells(3.1).Interior.colorindex=17
    9、 合并单元格
    objExcelSheet.Range(“A1:G7”).Merge
    10、 设置左右对齐方式
    2 left 3 middle 4 right
    objExcelSheet.Range("A1").HorizontalAlignment = 2
    11、 设置上下对齐方式
    2 为居中
    objExcelSheet.Range("A1")..VerticalAlignment = 2
    四、 ASP操作Excel生成Chart图
    1、 创建Chart图
    objExcelApp.Charts.Add
    2、 设定Chart图种类
    objExcelApp.ActiveChart.ChartType = 97
    注:二维折线图,4;二维饼图,5;二维柱形图,51
    3、 设定Chart图标题
    objExcelApp.ActiveChart.HasTitle = True
    objExcelApp.ActiveChart.ChartTitle.Text = "A test Chart"
    4、 通过表格数据设定图形
    objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range("A1:k5"),1
    5、 直接设定图形数据(推荐)
    objExcelApp.ActiveChart.SeriesCollection.NewSeries
    objExcelApp.ActiveChart.SeriesCollection(1).Name = "=""333"""
    objExcelApp.ActiveChart.SeriesCollection(1).Values = "={1,4,5,6,2}"
    6、 绑定Chart图
    objExcelApp.ActiveChart.Location 1
    7、 显示数据表
    objExcelApp.ActiveChart.HasDataTable = True
    8、 显示图例
    objExcelApp.ActiveChart.DataTable.ShowLegendKey = True
    五、 服务器端Excel文件浏览、下载、删除方案
    浏览的解决方法很多,“Location.href=”,“Navigate”,“Response.Redirect”都可以实现,建议用客户端的方法,原因是给服务器更多的时间生成Excel文件。
    下载的实现要麻烦一些。用网上现成的服务器端下载组件或自己定制开发一个组件是比较好的方案。另外一种方法是在客户端操作Excel组件,由客户端操作服务器端Excel文件另存至客户端。这种方法要求客户端开放不安全ActiveX控件的操作权限,考虑到通知每个客户将服务器设置为可信站点的麻烦程度建议还是用第一个方法比较省事。
    删除方案由三部分组成:
    A: 同一用户生成的Excel文件用同一个文件名,文件名可用用户ID号或SessionID号等可确信不重复字符串组成。这样新文件生成时自动覆盖上一文件。
    B: 在Global.asa文件中设置Session_onEnd事件激发时,删除这个用户的Excel暂存文件。
    C: 在Global.asa文件中设置Application_onStart事件激发时,删除暂存目录下的所有文件。
    注:建议目录结构 Src 代码目录 Templet 模板目录 Temp 暂存目录
    六、 附录
    出错时Excel出现的死进程出现是一件很头疼的事情。在每个文件前加上“On Error Resume Next”将有助于改善这种情况,因为它会不管文件是否产生错误都坚持执行到“Application.Quit”,保证每次程序执行完不留下死进程。

     欢迎加入QQ技术群聊:70539804

  • 相关阅读:
    nodejs
    flask中flash(闪现)的使用
    flask中logger日志的使用
    flask中session的使用
    flask开启调试模式
    flask中静态文件的引入
    flask中模板引入
    python web开发屠龙刀flask
    python操作excel基础1-环境搭建
    php算法-dijkstra
  • 原文地址:https://www.cnblogs.com/boltkiller/p/4791712.html
Copyright © 2020-2023  润新知