精华内容
下载资源
问答
  • 在用vb.net控制excel打印报表时发现一个问题,就是当记录数比较打的时候导出速度非常慢,快没法忍受了,尤其是内存比较小的时候. 原来的代码是用一个for循环直接向sheets.Cell中添数据,行少的时候还行,行多了就完了.哪...
             在用vb.net控制excel打印报表时发现一个问题,就是当记录数比较打的时候导出速度非常慢,快没法忍受了,尤其是内存比较小的时候.
             原来的代码是用一个for循环直接向sheets.Cell中添数据,行少的时候还行,行多了就完了.哪是一个慢啊.后来是用for循环向数组中写数据然后在用数组向sheets.Range.Value中写数据.速度有所提高,但仍然不理想.
    代码如下:
                Dim DataArray(ds.Tables("tj").Rows.Count, 9) As Object



                For i 
    = 0 To ds.Tables("tj").Rows.Count - 1

                    DataArray(
    3 + i + j, 0= ds.Tables("tj").Rows(i).Item("fph")
                    DataArray(
    3 + i + j, 1= ds.Tables("tj").Rows(i).Item("spm")
                    DataArray(
    3 + i + j, 2= ds.Tables("tj").Rows(i).Item("zsl")
                    DataArray(
    3 + i + j, 3= ds.Tables("tj").Rows(i).Item(3)

                    '计算总费用
                    Dim fysql As New OleDb.OleDbCommand
                    Dim zfy As Double
                    fysql.CommandText 
    = "select sum(je) from fy where fph='" + ds.Tables("tj").Rows(i).Item("fph") + "' group by fph"
                    fysql.Connection 
    = conn
                    conn.Open()
                    zfy 
    = fysql.ExecuteScalar()
                    conn.Close()

                    Select Case ds.Tables(
    "tj").Rows(i).Item("bz")
                        Case 
    "美元"
                            DataArray(
    3 + i + j, 5= ds.Tables("tj").Rows(i).Item("bgje")
                            '利润
    =sum(单价*数量)-总费用+退税金额
                            DataArray(
    3 + i + j, 6= ds.Tables("tj").Rows(i).Item("zz") * CSng(TextBox2.Text) - zfy + ds.Tables("tj").Rows(i).Item("tsje")    '按美元汇率计算利润
                        Case 
    "日元"
                            DataArray(
    3 + i + j, 4= ds.Tables("tj").Rows(i).Item("bgje")

                            DataArray(
    3 + i + j, 6= ds.Tables("tj").Rows(i).Item("zz") * CSng(TextBox1.Text) - zfy + ds.Tables("tj").Rows(i).Item("tsje")       '按日元汇率计算利润
                    End Select


                    DataArray(
    3 + i + j, 7= ds.Tables("tj").Rows(i).Item("myfs")
                    DataArray(
    3 + i + j, 8= ds.Tables("tj").Rows(i).Item("hxdh")

                Next
                sheet.Range(sheet.Cells(
    3, 1), sheet.Cells(ds.Tables("tj").Rows.Count + 2, 9)).Value = DataArray
                sheet.Range(sheet.Cells(
    3, 1), sheet.Cells(i + 2, 9)).Borders.LineStyle = 1

          在csdn中看到有用CSV 文件做的,对csv文件还不了解,以后在说.

    转载于:https://www.cnblogs.com/lsceng/archive/2007/01/11/617668.html

    展开全文
  • VB.net控制EXCEL单元格边框

    千次阅读 2013-04-28 10:42:12
    如: excelsheet.Range(“A4”:"H4").Borders(9).LineStyle = Excel.XlLineStyle.xlContinuous “A4”:"H4"是单元格范围 9是边线位置 下划线,线的位置如下图 xlContinuous是连续实线,线的样式如下图

      

    选定单元格范围,选择边线位置,指定线的样式

    如: excelsheet.Range(“A4”:"H4").Borders(9).LineStyle = Excel.XlLineStyle.xlContinuous

    “A4”:"H4"是单元格范围

    9是边线位置 下划线,线的位置如下图



    xlContinuous是连续实线,线的样式如下图




    展开全文
  • 最近使用VB 去生成Excel,正常添加都可以,但是添加的顺序都是

    最近使用VB 去生成Excel,正常添加都可以,但是添加的顺序都是倒叙的,看着比较揪心。

    解决方法如下:

     

    Private _excelApp As Object = Nothing
    Private _wBooks As Excel.Workbooks = Nothing
    Private _wBook As Excel.Workbook = Nothing
    Private _activeSheet As Excel.Worksheet = Nothing
    
    _excelApp = New Excel.Application()
    _wBooks = _excelApp.Workbooks
    _wBook = _wBooks.Add(True)
    
    _activeSheet = _wBook.Sheets.Add(After:=_wBook.Sheets(_wBook.Sheets.Count))'添加到最后
    _activeSheet.Name = "NewSheet"
    _activeSheet.PageSetup.CenterHorizontally = True
    
    '自动调整列宽
    _activeSheet.Cells.EntireColumn.AutoFit()
    '排序
    _activeSheet.UsedRange.Sort(Key1:=_activeSheet.Range(_activeSheet.Cells(1, 2).Address), Order1:=Excel.XlSortOrder.xlAscending, _Header:=Excel.XlYesNoGuess.xlYes, Orientation:=Excel.XlSortOrientation.xlSortColumns)

    展开全文
  • xlsSheet.EnableSelection = Excel.XlEnableSelection.xlNoSelection //给工作表加保护密码 xlsSheet.Protect("123", False, True, False, False, False, False, False, False, False, False, False, False, ...
  • Public Sub SetSheetStyles(ByVal xlSheet As Excel.Worksheet, _ ByVal rowCount As Int32, _ ...
    Public  Sub  SetSheetStyles(ByVal  xlSheet  As  Excel.Worksheet,  _  
                                                                                 ByVal  rowCount  As  Int32,  _  
                                                                                 ByVal  colCount  As  Int32)  
                   Dim  i,  intStart  As  Int32  
     
                   With  xlSheet  
     
     
                           If  AllowHeaderColor  Then  .Range(.Cells(1,  1),  .Cells(1,  MasterColumnCount)).Interior.Color  =  GetHeaderBackColorRGB  
     
                           If  IsExistMasterD  Then  '主从表  
                                   intStart  =  5  
     
                                   .Range(.Cells(1,  1),  .Cells(1,  MasterColumnCount)).Font.Size  =  10  '标头字体大小  
                                   .Range(.Cells(2,  1),  .Cells(2,  MasterColumnCount)).Font.Size  =  10  '主数据字体大小  
     
                                   .Range(.Cells(1,  1),  .Cells(1,  MasterColumnCount)).Font.Bold  =  True      '标题字体加粗  
                                   .Range(.Cells(2,  1),  .Cells(2,  MasterColumnCount)).Font.Italic  =  True      '主数据字体斜体  
     
                                   .Range(.Cells(1,  1),  .Cells(1,  MasterColumnCount)).Borders.LineStyle  =  1    '粗边框(已取消)  
                                   .Range(.Cells(2,  1),  .Cells(2,  MasterColumnCount)).Borders.LineStyle  =  1  '粗边框(已取消)  
     
                                   If  AllowHeaderColor  Then  .Range(.Cells(4,  1),  .Cells(4,  colCount)).Interior.Color  =  GetHeaderBackColorRGB  
                                   .Range(.Cells(4,  1),  .Cells(rowCount  +  4,  colCount)).Borders.LineStyle  =  1  '主数据边框样式  
     
                                   .Range(.Cells(4,  1),  .Cells(4,  colCount)).Font.Bold  =  True      '标题字体加粗  
                                   .Range(.Cells(4,  1),  .Cells(4,  colCount)).Font.Size  =  10  '数据项字体大小  
     
                                   .Range(.Cells(5,  1),  .Cells(rowCount  +  4,  colCount)).Font.Size  =  9  '数据项字体大小  
     
                           Else  
                                   intStart  =  2  
     
                                   .Range(.Cells(1,  1),  .Cells(1,  colCount)).Font.Size  =  10  '标头字体大小  
                                   .Range(.Cells(1,  1),  .Cells(1,  colCount)).Font.Bold  =  True      '标题字体加粗  
     
                                   .Range(.Cells(1,  1),  .Cells(rowCount  +  1,  colCount)).Borders.LineStyle  =  1  '设表格边框样式  
                                   .Range(.Cells(2,  1),  .Cells(rowCount  +  1,  colCount)).Font.Size  =  9  '数据项字体大小  
     
                           End  If  
     
                           If  exportSet.IsApply_PCR_ToExcelWord  AndAlso  exportSet.IsApplyExcel  Then  '允许使用颜色区分  
                                   If  rowCount  >  2  AndAlso  exportSet.IsAlwaysQuestion_ApplyPCRToEW  Then  '先询问是否执行颜色区分  
                                           If  MessageBox.Show("数据转换到Excel文档已完成!是否现在就执行奇偶行颜色区分?这可能需要较长的时间。"  &  vbLf  &  "如果不再希望出现此提示,请转到  打印设置的高级选项卡。",  "总是询问",  MessageBoxButtons.YesNo,  MessageBoxIcon.Question,  MessageBoxDefaultButton.Button2)  =  DialogResult.No  Then  Return  
                                   End  If  
                                   If  rowCount  >  2  Then  Common.Common.OnInfo("开始用颜色来区分奇偶数据行,这可能需要较长的一段时间。请稍候...",  Common.InfoBase.InfoTypeEnum.Working)  
     
                                   Dim  bolP  As  Boolean  =  (((rowCount  -  1)  Mod  2)  =  0)  '减去标头行Count  -  1  True=偶行  Even,False=奇行  Odd  
     
                                   Dim  startD  As  Double  =  Microsoft.VisualBasic.Timer  
                                   Dim  intEBC,  intOBC  As  Int32  
                                   intEBC  =  GetEvenBackColorRGB  
                                   intOBC  =  GetOddBackColorRGB  
     
                                   Dim  intS  As  Int32  =  intStart  
                                   rowCount  +=  intS  -  1  
                                   For  i  =  intStart  To  rowCount  
                                           If  bolP  Then  '偶行  
                                                   .Range(.Cells(i,  1),  .Cells(i,  colCount)).Interior.Color  =  intEBC  
                                           Else  '奇行  
                                                   .Range(.Cells(i,  1),  .Cells(i,  colCount)).Interior.Color  =  intOBC  
                                           End  If  
     
                                           bolP  =  Not  bolP  
                                   Next  i  
     
                                   If  rowCount  >  2  Then  Common.Common.OnInfo("颜色区分奇偶数据行已完成!用时:"  &  (Microsoft.VisualBasic.Timer  -  startD).ToString  &  "  秒",  Common.InfoBase.InfoTypeEnum.Message)  
                           End  If  
     
                   End  With  
     
                   With  xlSheet.PageSetup  
                           If  MasterColumnCount  >  6  Then  
                                   If  MasterColumnCount  >  12  Then  .PaperSize  =  Excel.XlPaperSize.xlPaperA3  '超过12列就用A3纸  
     
                                   .Orientation  =  Excel.XlPageOrientation.xlLandscape  '横幅  
     
                           Else  
                                   .Orientation  =  Excel.XlPageOrientation.xlPortrait  '竖幅A4纸  
                           End  If  
     
                           '  .TopMargin  =  1'不改变,因为有Header  
                           '.BottomMargin  =  1  
                           .LeftMargin  =  1  
                           .RightMargin  =  1  
     
                           .CenterHorizontally  =  True  '水平居中对齐  
                           '  .LeftHeaderPicture.Filename  =  Application.StartupPath  &  "\Resources\TRI-T  Icon.gif"  
                           .LeftHeader  =  "&""宋体,Bold""&13"  &  "TRI-T  Company  Limited"  '公司  
                           .CenterHeader  =  "&""宋体,Bold""&13"  &  TitleText    '标题"  
                           .LeftFooter  =  "&""宋体""&10制表人:"  &  PreparedBy  '制表人  
                           .CenterFooter  =  "&""宋体""&10制表日期:"  &  GetDatasheetDate  
                           .RightFooter  =  "&""宋体""&10第&P页  共&N页"  
                   End  With  
     
           End  Sub  

    转载于:https://www.cnblogs.com/365haha/archive/2006/11/09/555808.html

    展开全文
  • 1.現在數據是可以發送到Excel單元格裡了,但我想用代碼控制某一單元格字體大一些?(如:fontsize=12 or fontsize=16) 2.如何控制單元格的內容靠左或居中或靠右? 3.如何控制單元下邊框有下劃線,也就是下邊框在打印...
  • vb.net 操作EXCEL

    千次阅读 2009-10-26 16:56:00
    vb.net 操作EXCEL看看这个完整的全面Excel控制吧 全面控制 Excel 首先创建 Excel 对象,使用ComObj: var ExcelID: Variant; ExcelID := CreateOleObject( Excel.Application ); 1) 显示当前窗口: ExcelID.Visible :...
  • vb.netExcel中写入值

    2014-03-20 15:38:00
    一、在D盘新建一个temp文件夹用于存放Excel启动时写入标志,关闭时删除标志,vb.net程序会去查询该标志来知道Excel是否被人为打开或关闭了。  避免和程序的控制脱节。 二、在D盘根目录创建一个Excel,按Alt+F11...
  • 使用VB.NET编写控制excel的程序

    千次阅读 2005-04-06 08:18:00
    使用VB.NET编写控制excel的程序 以前也总是编写一些excel下的VBA程序,也就几百行代码便可以基本上解决问题。从来没有使用过VC或者VB、Delphi来做此类事情。我想如果做报表的话,相对规模和功能都要多一些,这应该...
  • '導入命名空間 Imports NPOI.HSSF.UserModelImports NPOI.HPSFImports NPOI.POIFS....Private Sub A1()'方法1-導到Excel Dim workbook As HSSFWorkbook = New HSSFWorkbook() Dim fs = New FileStream("C:\tes...
  • [VB.NET]轻松控制Excel

    千次阅读 2008-12-04 20:57:00
    轻松控制Excel 实例说明在本实例中,我们制作一个能够建立和打开Excel文档的应用程序。程序运行结果如图76-1所示。图76-1 运行结果技术要点l 添加Excel库l 新建/打开Excel文件实现过程<!--google_ad_client = "pub-...
  • 首先说明一下:本人刚接触VB.net程度也就是刚读完一些教材,知道几个主要的关键字,能编写一些小按钮直接控制类的程序,所以请各位高人见谅我可能会问的一些白痴问题…… 背景是这样的: 我们公司要自己开发一套...
  • 主要包含vba案例源代码及vb.net源代码 第10章 Ribbon用户界面 第11章 创建跨版本兼容的应用程序 第12章 理解和使用Windows API调用 ...第24章 EXCELVB.NET 第25章 使用VB.NET编写托管COM外接程序
  • ASP NET是微软.NET战略中的一个重要成员 除了可以使用Visual C# VB.NET VisualC++ NET JScript.NET等语言编写外 还可以使用第三方的.NET接口 如COBOL.NET Perl.NET等 进行编写 本书通过100个精彩实例 由浅入深...
  • 转自:...VB全面控制Excel方法大汇总,共300个: 首先创建 Excel 对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application 1) 显示当前窗口:ExcelID....
  • //获取路径中文件名 ...控制fileUpload控件,不让更改里面的内容,只可以选择 contentEditable="false" 用来验证fileUpload控件中的上传的图片格式的javascript脚本 document.getElementById("Fil...
  • 完全代码集成-使用Microsoft Visual Studio.NET编辑器用C#或VB.NET编写报表的代码,非常灵活。 报表向导-报表向导帮助您开始创建使用集成设计器来定制的简单报表。 图片文件名 运用优势 最终用户报表设计器 ...
  • 开发环境基于VSTO,具体配置:visual studio 2010,VB .Netexcel 2007,文档级别的定制程序。 在Ribbon工具栏中有2个功能按钮,它们是否可用取决于worksheet(sheet1)中的内容。 button1需要在sheet1中存在某个...
  • asp.net知识库

    2015-06-18 08:45:45
    实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP...
  • ASP.NET编程百例(PDF)

    2011-11-11 17:46:47
    ASP.NET是微软.NET战略中的一个重要成员,除了可以使用Visual C#、VB.NET、VisualC++.NET、JScript.NET等语言编写外,还可以使用第三方的.NET接口(如COBOL.NET、 Perl.NET等)进行编写。本书通过100个精彩实例...
  • Visual Basic 2010 & .NET4 高级编程(第6版)-文字版 第I部分 语言结构和环境 第1章 visual studio 2010 3 1.1 visual studio 2010:从express到ultimate的各种版本 4 1.2 visual basic的关键字和语法 7 ...
  • Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf 第I部分 语言结构和环境 第1章 visual studio 2010 3 1.1 visual studio 2010:从express到ultimate的各种版本 4 1.2 visual basic的关键字和语法 7 ...
  • 10.4.6 dataset和datatable对象的高级ado.net特性 418 10.5 使用通用提供程序模型 420 10.6 ado.net中的连接池 422 10.7 transactions类和system.transactions名称空间 423 10.7.1 创建事务 423 10.7.2 创建...
  • 10.4.6 dataset和datatable对象的高级ado.net特性 418 10.5 使用通用提供程序模型 420 10.6 ado.net中的连接池 422 10.7 transactions类和system.transactions名称空间 423 10.7.1 创建事务 423 10.7.2 创建...
  • 10.4.6 dataset和datatable对象的高级ado.net特性 418 10.5 使用通用提供程序模型 420 10.6 ado.net中的连接池 422 10.7 transactions类和system.transactions名称空间 423 10.7.1 创建事务 423 10.7.2 创建...
  • 利用VB.Net开发出一个通用的报表组件。该组件具有灵活、动态报表功能,用户可以选择其报表内容,报表数据不仅用户可以控制打印,还可以多种文件格式保存。现在把它实现的方法及过程阐述如下: 实现原理:利用EXCEL...
  • 一个操作EXCEL的Dlephi接口代码,一个Excel二次开发SDK接口类附代码,包括的文档中介绍了使用方法,对操作Excel文件有极大帮助。... OCX版SDK适用于所有可以使用OCX的语言,如JAVA、VB、VC、PB、.NET等高级语言。
  • 从数据库中取数VB

    2012-02-11 10:31:22
    · 强大的制表能力,特别适合制作中国式的复杂报表,解决您所有的制表难题 · 丰富的单元格类型,支持数值、货币、日期、文本等类型。...· 适用于VB、VC、VF、.NET、Delphi、C++ Builder、PowerBuilder等开发工具

空空如也

空空如也

1 2 3 4
收藏数 74
精华内容 29
关键字:

vb.net控制excel