`

ruby导出excel图

阅读更多

 #!/usr/bin/ruby -w

 require 'writeexcel'

 workbook  = WriteExcel.new('chart.xls')
 worksheet = workbook.add_worksheet

 chart     = workbook.add_chart(:type => 'Chart::Scatter')

 # Configure the chart.
 chart.add_series(
   :categories => '=Sheet1!$A$2:$A$7',
   :values     => '=Sheet1!$B$2:$B$7'
)

 # Add the worksheet data the chart refers to.
 data = [
     [ 'Category', 2, 3, 4, 5, 6, 7 ],
     [ 'Value',    1, 4, 5, 2, 1, 5 ]
 ]

 worksheet.write('A1', data)

 workbook.close


 #!/usr/bin/ruby -w

 require 'writeexcel'

 workbook  = WriteExcel.new('chart_scatter.xls')
 worksheet = workbook.add_worksheet
 bold      = workbook.add_format(:bold => 1)

 # Add the worksheet data that the charts will refer to.
 headings = [ 'Number', 'Sample 1', 'Sample 2' ]
 data = [
     [ 2, 3, 4, 5, 6, 7 ],
     [ 1, 4, 5, 2, 1, 5 ],
     [ 3, 6, 7, 5, 4, 3 ]
 ]

 worksheet.write('A1', headings, bold)
 worksheet.write('A2', data)

 # Create a new chart object. In this case an embedded chart.
 chart = workbook.add_chart(:type => 'Chart::Scatter', :embedded => 1)

 # Configure the first series. (Sample 1)
 chart.add_series(
   :name       => 'Sample 1',
   :categories => '=Sheet1!$A$2:$A$7',
   :values     => '=Sheet1!$B$2:$B$7'
)

 # Configure the second series. (Sample 2)
 chart.add_series(
   :name       => 'Sample 2',
   :categories => '=Sheet1!$A$2:$A$7',
   :values     => '=Sheet1!$C$2:$C$7'
)

 # Add a chart title and some axis labels.
 chart.set_title (:name => 'Results of sample analysis')
 chart.set_x_axis(:name => 'Test number')
 chart.set_y_axis(:name => 'Sample length (cm)')

 # Insert the chart into the worksheet (with an offset).
 worksheet.insert_chart('D2', chart, 25, 10)

 workbook.close



#   creating a chart in excel
require 'win32ole'

#   set some parameter variables
xlColumns = 2
xlColumnClustered = 51
xlWhite = 2
xlRed = 3
xlBlue = 5
xlGray = 15

#   connect to a running instance of excel
xl = WIN32OLE.connect('Excel.Application')
wb = xl.Workbooks('mlb_stats.xls')

#   delete "MLB Scoring" chart if it already exists
xl.DisplayAlerts = false
    begin
        wb.Charts("MLB Scoring").Delete
    rescue
    end
xl.DisplayAlerts = true

#   create a new chart
mychart = wb.Charts.Add
mychart.Name = "MLB Scoring"
mychart.SetSourceData wb.Worksheets("Runs Scored and Allowed").Range("A1:C15"), xlColumns
mychart.ChartType = xlColumnClustered

#   set series names in the legend
mychart.SeriesCollection(1).Name = "Runs Scored"
mychart.SeriesCollection(2).Name = "Runs Allowed  "

#   set colors
mychart.SeriesCollection(1).Interior.ColorIndex = xlBlue
mychart.SeriesCollection(2).Interior.ColorIndex = xlRed
mychart.ChartArea.Interior.ColorIndex = xlWhite
mychart.ChartArea.Border.ColorIndex = xlBlue
mychart.PlotArea.Interior.ColorIndex = xlGray
mychart.PlotArea.Border.ColorIndex = xlWhite

#   set chart title properties
mychart.HasTitle = true
mychart.ChartTitle.Characters.Text = "American League - Runs Scored vs. Runs Allowed"
mychart.ChartTitle.Font.Name = 'Verdana'
mychart.ChartTitle.Font.Size = 16
mychart.ChartTitle.Font.Bold = true



require   'win32ole ' 

#   -4100   is   the   value   for   the   Excel   constant   xl3DColumn. 
ChartTypeVal   =   -4100; 

#   Creates   OLE   object   to   Excel 
excel   =   WIN32OLE.new( "excel.application ") 

#   Create   and   rotate   the   chart 

excel[ 'Visible ']   =   TRUE 
workbook   =   excel.Workbooks.Add() 
excel.Range( "a1 ")[ 'Value ']   =   3 
excel.Range( "a2 ")[ 'Value ']   =   2 
excel.Range( "a3 ")[ 'Value ']   =   1 
excel.Range( "a1:a3 ").Select() 
excelchart   =   workbook.Charts.Add() 
excelchart[ 'Type ']   =   ChartTypeVal 

30.step(180,   10)   do   |rot| 
        sleep(1) 
        excelchart[ 'Rotation ']   =   rot 
end 

excelchart2   =   workbook.Charts.Add(); 
excelchart3   =   workbook.Charts.Add(); 

charts   =   workbook.Charts 
charts.each   {   |i|   puts   i   } 

excel.ActiveWorkbook.Close(0); 
excel.Quit(); 









参考:

http://rubyonwindows.blogspot.com/2008/06/automating-excel-chart-axis-and-legend.html
http://rubyonwindows.blogspot.com/2008/06/automating-excel-creating-charts.html
分享到:
评论

相关推荐

    用ruby读excel文件生成xml文件

    标题 "用ruby读excel文件生成xml文件" 描述的是一项技术任务,即使用Ruby编程语言来处理Excel文件,并将其内容转换成XML格式。这在数据迁移、格式转换或与不支持Excel格式的应用程序进行数据交换时非常有用。Ruby库...

    Ruby源代码(数据导出excel)

    Ruby源代码,批量导出数据到excel文件脚本。

    excel lib ror ruby

    RoR是一个流行的开源Web开发框架,而Ruby语言本身支持与Microsoft Excel文件交互,这在数据导入导出、报表生成等场景中非常有用。 描述虽然简洁,但我们可以推断出它可能是指如何在Ruby中利用库来读取、写入或操作...

    数据导出到Excel源码.zip

    在IT领域,数据导出到Excel是一项常见的任务,特别是在数据分析、报表生成以及数据交换中。这个"数据导出到Excel源码.zip"压缩包文件很可能包含了一组编程代码,用于帮助开发者实现从程序中导出数据到Microsoft ...

    to_xls-rails:将Rails ActiveRecord或Mongid数据导出到Excel文件

    to_xls护栏 这个简单的插件使您能够调用to_xls到Rails的数组集合。 数组元素支持对象:ActiveRecord,Mongid,哈希。 在您的Gemfile中: gem 'to_xls-rails' # Last officially released gem ...

    csv导出大量数据

    - 编程语言:Python、Java、R、Ruby等编程语言都有库或内置函数支持CSV文件的读写,如Python的`pandas`库和`csv`模块。 5. 分块导出与流式处理 对于海量数据,可以采用分块导出,每次只处理一部分数据,减少内存...

    ruby+watir 测试框架

    在名为"framework1.9"的压缩包中,可能包含了这个测试框架的实现,包括Ruby测试脚本、测试数据(如Excel文件)、配置文件以及可能的辅助工具或库。为了进一步了解和使用这个框架,你需要解压文件并查看里面的代码和...

    export-handlers(fusioncharts离线导出服务).rar

    在某些场景下,例如离线环境或者网络不稳定的情况,用户可能需要将图表导出为静态图片或者Excel文件以便后续处理或分享。"export-handlers(fusioncharts离线导出服务).rar"这个压缩包文件就是为了满足这种需求,提供...

    Ruby-SpreadsheetArchitect可以将任何activerecord关系或ruby对象集合转换成XLSXODS或CSV电子表格

    Ruby-SpreadsheetArchitect是一个强大的库,专门设计用于Ruby开发者,它允许将任何ActiveRecord关系或Ruby对象集合方便地导出为XLSX、ODS或CSV格式的电子表格文件。这个工具对于需要处理大量数据并希望以用户友好的...

    Redis数据导入导出以及数据迁移的4种方法详解

    Redis-Dump 是一个基于 Ruby 的数据导入/导出工具,可以方便地备份 Redis 数据。在安装过程中,可能需要更换 RubyGems 源,例如从 RubyGems.org 更改为 Ruby China 镜像。使用 redis-dump 可以将源 Redis 的数据导出...

    Python对Excel操作详解.pdf

    与 Scheme、Ruby、Perl、Tcl 等动态语言一样,Python 具备垃圾回收功能,能够自动管理存储器使用。 Python 安装非常简单,只需要从官网下载安装文件,然后直接双击安装。安装完成后,在 C 盘下就多了一个文件夹 ...

    RubySpreadsheet:Ruby 的电子表格库-开源

    在Ruby中直接操作Excel文件可以极大地简化工作流程,特别是对于那些需要大量数据导入导出、数据分析或报告生成的应用程序。通过这个库,开发者可以以编程方式创建新的工作簿,添加工作表,填充单元格,设置格式,...

    Ruby-Yomu从各种文档读文本和元数据docdocxpagesodtrtfpdf

    - **.pages**:这是Apple的Pages软件创建的文档格式,Yomu可能需要将.pages文件导出为更通用的格式(如.doc或.pdf)再进行处理。 - **.odt**:OpenDocument Text,是开放源码的文档格式,通常由LibreOffice和...

    rails-exporter-源码.rar

    2. Excel 出口:Axlsx 是一个用于生成 Microsoft Excel XLSX 文件的 Ruby 库,它允许开发者创建复杂的表格、图表和样式。 3. 文件生成与下载:Rails 内置的 send_data 和 send_file 方法可用于在服务器端生成文件后...

    rubyXL-源码.rar

    RubyXL是一个用于创建、修改和解析Microsoft Excel XML格式文件的Ruby库。这个“rubyXL-源码.rar”压缩包很可能包含了RubyXL库的完整源代码,对于开发者来说,这是一个宝贵的资源,可以深入理解库的工作原理并对其...

    to_xls:这个 Rails 插件是导出到 Excel 的最简单方法。 它使您能够调用 to_xls 到一系列活动记录。 构建器选项与 to_json to_xml 相同,除了

    这个 Rails 插件是导出到 Excel 的最简单方法。 它使您能够调用 to_xls 到一系列活动记录(数组)。 除了 :include 之外,构建器选项与 to_json / to_xml 相同。 注意:IMO 我会使用 to_csv 插件; 它更兼容。 ( )...

    poi 3.8 beta3-20110606最新版本

    该版本在性能上有着显著的提升,同时修复了不少的bug, Apache POI是一个开源的...poi最新版本3.8,操作对Word,Excel导入导出数据库很有帮助,项目中很多都在使用poi,最新版本赶紧使用吧!(此文件可以用winRar打开)

    rubyxl_sample:是一个总结了rubyXL使用技巧的仓库

    使用 RubyXL 可以实现自动化报告生成、数据导入导出、数据分析等多种任务,尤其适用于需要大量处理 Excel 数据的项目。通过研究“rubyxl_sample”提供的示例,开发者可以更好地理解和掌握如何在实际项目中运用 ...

    roo:Roo为Open Office,Excel和Google Spreadsheets提供了一个界面

    1. **多格式支持**:`roo` 支持多种文件格式,包括 `.ods`(OpenDocument Spreadhseet)、`.xlsx` 和 `.xls`(Microsoft Excel的97-2003和2007+版本)以及 `.gsheet`(Google Sheets的导出格式)。这使得它能够处理...

    spearman的matlab代码-statsample:Ruby基础和高级统计套件

    和纯文本文件导入和导出数据集。 相关性:Pearson r、Spearman 秩相关 (rho)、点双列、tau a、tau b 和 gamma。 Tetrachoric 和 Polychoric 相关性由 +statsample-bivariate-extension+ gem 提供。 类内相关 方差...

Global site tag (gtag.js) - Google Analytics