1. Private Sub btnExprot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExprot.Click
  2. If Not T Is Nothing Then
  3. If T.ThreadState = ThreadState.Running Then Exit Sub
  4. End If
  5. T = New Thread(AddressOf Export)
  6. T.Start()
  7. End Sub
  8.  
  9. Private Sub Export()
  10. Dim xApp = New Excel.Application
  11. Dim xBook As Excel.Workbook
  12. Dim xSheet As New Excel.Worksheet
  13. Dim charts As Object
  14. Me.Cursor = Cursors.WaitCursor
  15. Try
  16. xBook = xApp.Workbooks.Add(Application.StartupPath & "\Templets\Monthly Short Ship Analysis Report.xlt")
  17. 'one plant site one sheet
  18. For i As Integer = To ds.Tables.Count -
  19. xSheet = xBook.Worksheets(i)
  20. xSheet.Name = ds.Tables(i).TableName
  21. xSheet.Activate()
  22. xSheet.Application.WindowState = Excel.XlWindowState.xlMaximized
  23. xSheet.Cells.NumberFormatLocal = "@" '數值型轉字符串,防止出現6.54655E+11
  24. xApp.DisplayAlerts = False
  25.  
  26. 'data
  27. '------------------------------------------------------------------------------------
  28. Dim data(ds.Tables(i).Rows.Count + , ) As Object
  29. Dim j As Integer
  30. Dim qty As Integer =
  31. For j = To ds.Tables(i).Rows.Count -
  32. xSheet.Range("A3").Resize(, ).Insert(Shift:=Excel.XlDirection.xlDown)
  33. data(j, ) = ds.Tables(i).Rows(j).Item("reason")
  34. data(j, ) = ds.Tables(i).Rows(j).Item("qty")
  35. data(j, ) = ds.Tables(i).Rows(j).Item("percentage")
  36. qty += ds.Tables(i).Rows(j).Item("qty")
  37. Next
  38. data(j, ) = "Total:"
  39. data(j, ) = qty
  40. data(j, ) = IIf(qty > , "100.00%", "0.00%")
  41. xSheet.Range("A3").Resize(, ).Delete()
  42. xSheet.Range("A2").Resize(ds.Tables(i).Rows.Count + , ).Value = data
  43. '------------------------------------------------------------------------------------
  44.  
  45. 'charts
  46. '------------------------------------------------------------------------------------
  47. Dim height As Integer = xSheet.Range("A1").Resize( + ds.Tables(i).Rows.Count, ).Height
  48. charts = xSheet.ChartObjects.Add(, height, , ).Chart
  49. charts.SetSourceData(Source:=xSheet.Range("A2").Resize(ds.Tables(i).Rows.Count, ))
  50. With charts
  51. .HasTitle = True
  52. .ChartTitle.Characters.Text = ds.Tables(i).TableName + "廠按原因縮數情況表"
  53. With .ChartTitle.Font
  54. .Name = "新細明體"
  55. .Size =
  56. .Strikethrough = False
  57. .Superscript = False
  58. .Subscript = False
  59. .OutlineFont = False
  60. .Shadow = False
  61. .Underline = Excel.XlUnderlineStyle.xlUnderlineStyleNone
  62. .ColorIndex =
  63. .Background = Excel.Constants.xlAutomatic
  64. End With
  65. .Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).HasTitle = False
  66. .Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).HasTitle = False
  67. .HasLegend = False
  68. 'show the data value
  69. .ApplyDataLabels(AutoText:=True, LegendKey:=False, HasLeaderLines:=False, ShowSeriesName:=False, ShowCategoryName:=False, ShowValue:=True, ShowPercentage:=False, ShowBubbleSize:=False)
  70. 'X Coordinate
  71. .Axes(Excel.XlAxisType.xlCategory).TickLabels.AutoScaleFont = True
  72. With .Axes(Excel.XlAxisType.xlCategory).TickLabels.Font
  73. .Name = "Arial"
  74. .FontStyle = "標準"
  75. .Size =
  76. .Strikethrough = False
  77. .Superscript = False
  78. .Subscript = False
  79. .OutlineFont = False
  80. .Shadow = False
  81. .Underline = Excel.XlUnderlineStyle.xlUnderlineStyleNone
  82. .ColorIndex = Excel.Constants.xlAutomatic
  83. .Background = Excel.Constants.xlAutomatic
  84. End With
  85. End With
  86. '------------------------------------------------------------------------------------
  87. Next
  88.  
  89. xApp.Range("A1").Select()
  90. xApp.Visible = True
  91. xApp.Caption = "Bogart Report"
  92. xApp.ActiveWindow.Caption = "Monthly Short Ship Analysis Report"
  93. Catch ex As Exception
  94. MessageBox.Show(ex.ToString)
  95. Finally
  96. xBook = Nothing
  97. xApp = Nothing
  98. Me.Cursor = Cursors.Default
  99. End Try
  100. End Sub

vb 导出excel生成图表统计的更多相关文章

  1. [转] C#操作EXCEL,生成图表的全面应用

    gailzhao 原文 关于C#操作EXCEL,生成图表的全面应用 近来我在开发一个运用C#生成EXCEL文档的程序,其中要根据数据生成相应的图表,该图表对颜色和格式都有严格的要求,在百度和谷歌中搜索 ...

  2. js插件---在线类似excel生成图表插件解决方案

    js插件---在线类似excel生成图表插件解决方案 一.总结 一句话总结:google比百度好用多了,多用google google js editable table jquery 双向绑定 这种 ...

  3. EasyOffice-.NetCore一行代码导入导出Excel,生成Word

    简介 Excel和Word操作在开发过程中经常需要使用,这类工作不涉及到核心业务,但又往往不可缺少.以往的开发方式在业务代码中直接引入NPOI.Aspose或者其他第三方库,工作繁琐,耗时多,扩展性差 ...

  4. NPOI导出Excel生成多个sheet

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  5. poi 导出excel 生成等比例图片

    poi 导出的带等比例图片方法 /** * * <p>Description: 将一物一码列表导出到excel</p> * @param response * @param l ...

  6. 生成统计数据并导出Excel

    需求:看如下表格的统计需求 生产调度中心部门需要从IT技术部门得到这些统计数据 步骤: (1)获取所有的子公司列表 (2)遍历所有的子公司,获取每个子公司的库存信息 (3)遍历所有的库存信息,并对库存 ...

  7. NPOI根据模板生成chart图表导出Excel

    导入NPOI的全部dll. 因为NPOI的API里面还没有对于Chart图表方面的操作,所以只能根据提示做好的图表作为模板,修改数据源的方法来改变图表. 注意:NPOI要用2003版以下的excel才 ...

  8. BootStrap母版页布局.子页面布局.BootstrapTable.模态框.警告框.html导出tabl生成Excel.HTML生成柱图.饼图.时间控件中文版

    如上就是很多后台管理系统的母版页布局. 左边一列模板.上面一列系统标识. 空白处充填子页面 以ASP.NET MVC为基础 引入bootstrap.js.bootstrap.css body: < ...

  9. 导出Excel之Epplus使用教程3(图表设置)

    导出Excel之Epplus使用教程1(基本介绍) 导出Excel之Epplus使用教程2(样式设置) 导出Excel之Epplus使用教程3(图表设置) 导出Excel之Epplus使用教程4(其他 ...

随机推荐

  1. How to convert int [12] to array<int, 12>

    code: // array::data #include <iostream> #include <cstring> #include <array> int m ...

  2. POJ 3617:Best Cow Line(贪心,字典序)

    Best Cow Line Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 30684   Accepted: 8185 De ...

  3. Makefile在内核编译中的使用

    1.一个配置选项选中多个文件 path:drivers/media/i2c/adv748x adv748x-objs := \ adv748x-afe.o \ adv748x-core.o \ adv ...

  4. nginx-opentracing 简单使用

    nginx 的日常的应用开发中占比还是比较高的,opentracing 是一个分布式追踪标准 相应是开源实现也比较多.nginx-opentracing 是一个opentracing nginx 的插 ...

  5. kettle--window开发环境和linux运行环境的迁移

    首先要做的是将kettle在linux下搭建好. 一.搭建linux的kettle环境 1.1解压 (my_python_env)[root@hadoop26 ~]# .zip -d /usr/loc ...

  6. 【转】每天一个linux命令(20):find命令之exec

    原文网址:http://www.cnblogs.com/peida/archive/2012/11/14/2769248.html find是我们很常用的一个Linux命令,但是我们一般查找出来的并不 ...

  7. vuex、redux、mobx 对比

    出处:https://www.w3cplus.com/javascript/talk-about-front-end-state-management.html 其实大部分概念都差不多,只不过VUEX ...

  8. numpy之meshgrid和where

    meshgrid np.meshgrid() np.meshgrid从坐标向量返回坐标矩阵. 这样说可能很抽象.举个例子. x = np.arange(-2,2) y = np.arange(0,3) ...

  9. tyvj1061Mobile Service

    题目:http://www.joyoi.cn/problem/tyvj-1061 dp.枚举三个人现在的位置. 1.重点:当前必有一人正处在查询点上!于是省掉一维. 2.转移方程枚举上一阶段的 j 和 ...

  10. POJ2127 LICS模板

    题目:http://poj.org/problem?id=2127 十分费劲地终于记录好了路径……用一个前驱. 这是 n^2 的LICS方法.其实就是 n ^ 2 log n 把“找之前的d [ j ...