苏州培训网 > 苏州办公软件培训机构 > 倍杰教育
首页 培训网 最新资讯 热门问答

倍杰教育

13013833891 免费试听

您当前的位置: 苏州办公应用培训 > 苏州办公软件培训 > 张家港excel技巧培训

张家港excel技巧培训_张家港办公软件培训

¥详询

班制:周末班

倍杰教育
上课(咨询)地址:张家港市长安南路49号西城大厦4楼(步行街西头往南100米,
报名咨询 预约试听
课程介绍
张家港excel技巧培训

Word和WPS哪个好用?

1、微软Word

适用群体:商务办公人员

推荐理由:

①微软Word需要付费,但运行相对比较稳定、功能齐全。

②微软Word在细节的处理上会比较有优势,尤其是在处理文件表述较大较复 杂的时候,效果如何谁用谁知道。

③参加竞赛时,一般都是要求使用微软Word格式,这样可以避免文档格式不 兼容、或打开出错等问题。

2、WPS

适用群体:学生等普通用户

推荐理由:

①WPS体积小、易安装,而且免费。

②如果你仅仅只是想要做点文字记录,图文表述,那么使用WPS完全是可以 满足你的需求。如果你需要批量转换WPS文件格式,虽然WPS并没有批量转换功能,不过我们却可以使用在线迅捷pdf转换器来搞定!

张家港excel技巧培训

ps
学习产品

张家港excel技巧培训

PS111 : Photoshop由零开始

视频学习:

--

学习收获 **培训,使学员了解Photoshop的界面组成, 熟悉Photoshop主要功能以及基本命令与工具的操作方法,为快速入门Photoshop提供了一个强有力的调板。

培训时长:

12 小时

预备知识:

PS121 : Photoshop图片特效处理一点通

视频学习:

3.5 小时

学习收获 在实践中熟练掌握Photoshop的图片处理、辅助 Office办公软件的使用方法和操作技巧,并深刻地领会Photoshop平面创作的基本思路,从而快速地步入影像圣堂。

培训时长:

12 小时

预备知识:

Photoshop由零开始

PS131 : Photoshop特效设计提高班

视频学习:

--

学习收获 了解并掌握图像处理、编辑、通道、图层、路径 综合运用;图像色彩的校正;各种特效滤镜的使用;特效字的制作;图像输出与优化等,灵活运用图层风格,图层特效和蒙版,制作出千变万化的图像 特效。

Excel输出与性能



**近的工作内容之一是对一个Windows Forms程序做性能调整,过程曲折有趣,记下来和大家分享一下。

这个程序的功能其实挺单纯:先检索Oracle,然后把结果输出到一个Excel文件里;输出时使用了Excel 2002/2003提供的Excel Object库。客户反映说程序太慢,输出5000条数据就得苦等一个上午。我们也觉得奇怪,就把代码翻出来看。这份代码大概十年前就有了,**初是VB5做的,后来经过一次升级,变成了现在的VB.NET版(基于.NET Framwork 1.1)。看了半天代码,我们好像找到问题所在了:在向Excel输出的时候,代码的做法比较笨——它针对每个单元格逐一赋值,而每次赋值都应该会导致一次磁盘写入操作,程序很可能因此变慢。假定检索结果包含5000条记录,每一条记录里有50个字段,这样就需要生成一个5000行×50列的Excel文件。采用单元格逐一赋值的做法,就意味着要执行25万次磁盘写入操作。示例代码如下:

 Reference for Microsoft Excel is required.
 Imports Microsoft.Office.Interop
    Public Function WriteIntoExcelCellbycell(ByVal ExcelFile As String, ByVal ExcelRowCount As Integer, ByVal ExcelColumnCount As Integer) As TimeSpan

        Dim dtStart As DateTime
        dtStart = Now

        Dim objExcelApp As Excel.application = Nothing
        Dim objWorkBook As Excel.Workbook = Nothing
        Dim objWorkSheet As Excel.Worksheet = Nothing
        Try
            objExcelApp = New Excel.Application
            objExcelApp.Visible = False

            objWorkBook = objExcelApp.Workbooks.Open(ExcelFile)
            objWorkBook.Activate()

            objWorkSheet = DirectCast(objWorkBook.Worksheets.Add(), Excel.Worksheet)
            objWorkSheet.Activate()

            For intRow As Integer = 1 To ExcelRowCount
                For intColumn As Integer = 1 To ExcelColumnCount
                    objWorkSheet.Cells.Item(intRow, intColumn) = intRow & "-" & intColumn & "ABCDEFG"
                Next
            Next

            objWorkBook.Save()

            Return DateTime.Now.Subtract(dtStart)
        Catch ex As Exception
            Throw ex
        Finally
            If objWorkBook Is Nothing Then
            Else
                objWorkBook.Close()
            End If
            If objExcelApp Is Nothing Then
            Else
                objExcelApp.Workbooks.Close()
                objExcelApp.Quit()
            End If
        End Try
    End Function


于是,我们尝试了另一种做法——先把所有检索结果转换成一个二维数组,然后一次性写入Excel。 代码示意如下:



 Reference for Microsoft Excel is required.
 Imports Microsoft.Office.Interop
  Public Function WriteIntoExcelByRange(ByVal ExcelFile As String, ByVal ExcelRowCount As Integer, ByVal ExcelColumnCount As Integer) As TimeSpan

      Dim dtStart As DateTime
      dtStart = Now

      Dim objExcelApp As Excel.Application = Nothing
      Dim objWorkBook As Excel.Workbook = Nothing
      Dim objWorkSheet As Excel.Worksheet = Nothing
      Try
          objExcelApp = New Excel.Application
          objExcelApp.Visible = False

          objWorkBook = objExcelApp.Workbooks.Open(ExcelFile)
          objWorkBook.Activate()

          objWorkSheet = DirectCast(objWorkBook.Worksheets.Add(), Excel.Worksheet)
          objWorkSheet.Activate()

          Dim dataBuffer As String(,)
          dataBuffer = Array.CreateInstance(Type.GetType("System.String"), ExcelRowCount, ExcelColumnCount)
          For intRow As Integer = 0 To ExcelRowCount
              For intColumn As Integer = 0 To ExcelColumnCount
                  dataBuffer(intRow, intColumn) = intRow & "-" & intColumn & "ABCDEFG"
              Next
          Next

          Dim objRange As Excel.Range
          objRange = objWorkSheet.Range(objWorkSheet.Cells(1, 1), objWorkSheet.Cells(ExcelRowCount, ExcelColumnCount))
          objRange.Value = dataBuffer

          objWorkBook.Save()

          Return DateTime.Now.Subtract(dtStart)
      Catch ex As Exception
          Throw ex
      Finally
          If objWorkBook Is Nothing Then
          Else
              objWorkBook.Close()
          End If
          If objExcelApp Is Nothing Then
          Else
              objExcelApp.Workbooks.Close()
              objExcelApp.Quit()
          End If
      End Try

  End Function


我们找了现场**老的一台PC(CPU:Celeron 2GHZ,内存:512MB)做测试,发现使用新方法输出16000条数据只需要不到5分钟时间。我们都感到高兴,以为这件事这样就算搞定了。但是,当我们把检索结果件数增加到65000条时(这是客户要求的**大数据输出量,但我们猜测他们自己或许从来不曾一次输出过这么多数据),发现程序又变得像老牛一样了——整整花费了8个小时才能完成输出。



我们做了一下计算:



■检索结果:65000条

■每条记录平均长度:600字节


■一次性写入Excel的数据量:约37MB



一次性向Excel文件写入37MB数据,或许有些太为难Excel Object库了。那么,应该如何改善呢?到目前为止我们还没有找到解决方法,但已经有了一些初步的设想——



**,可以考虑换一种思路。客户的目的是使用Excel查看查询结果,并能把结果另存为Excel文件。现在性能卡在Excel文件输出上,那么,我们能不能绕道而行,避开把数据直接输出到Excel文件上的做法?譬如先把结果输出到CSV文件上,然后再写个Macro(宏)将数据从CSV里读取出来放入Excel显示。相对于Excel文件,CSV文件的写操作速度应该快许多,而利用Macro从CSV文件提取数据应该也不会太慢。



第二,可以考虑放弃Excel Object库,换一个性能好一点的Excel库。有一个名为ExcelCreator.NET的库可以用。据说这个库效率高过Excel Object很多倍。下面的性能测试数据来自那个公司的网站:http://www.adv.co.jp/PRoducts/product_ExcelCreator5_feature2.htm



■测试用例1:256列×300行Excel输出

ExcelObject:6′6″


ExcelCreator 5.0 for .NET:1.4″



■测试用例2:30列×2000行Excel输出

ExcelObject:4′45″


ExcelCreator 5.0 for .NET:1.2″


相关推荐:


苏州办公软件培训   苏州办公软件培训班   苏州办公软件培训机构

体验课预约试听

倒计时

12:00:00

课程热线:

13013833891
在线咨询

客服在线时间:早上9点~下午6点,其他时间请在线预约报名或留言,谢谢!

苏州办公软件

免费体验课开班倒计时

11: 41: 09

稍后会有专业老师给您回电,请保持电话畅通

咨询电话:13013833891
推荐机构 全国分站 更多课程

本周仅剩 个试听名额

请键入信息,稍后系统将会把领奖短信发至您的手机

申请试听名额

已有10254人申请免费试听

01电话咨询 | 13013833891

QQ:1413838287
加盟合作:0755-83654572