`
hiscaler
  • 浏览: 11963 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

利用 DataMapper 写入数据到 Excel 文件中

    博客分类:
  • Ruby
阅读更多
begin_time = Time.now
puts "Begin: #{begin_time}"
require 'rubygems'
require 'datamapper'
require "spreadsheet/excel"
require "iconv"
include Spreadsheet

ic = Iconv.new("GB2312//IGNORE", "UTF-8//IGNORE")
workbook = Excel.new("D:/xampp/htdocs/rubyshell/sources/demodatas/abc.xls")
DataMapper.setup(:default, 'mysql://localhost/demo_nobel_test')
#固定资产
class FixedAsset
  include DataMapper::Resource
  storage_names[:default] = 'www_fixed_assets'
  
  property :id,   Serial
  property :type, Integer
  property :kindergarten_id, Integer
  property :dept_id, Integer
  property :sn, String
  property :name, String
  property :specification, String
  property :category_id, Integer
end

#日常易耗品
class ExpendableItem
  include DataMapper::Resource
  storage_names[:default] = 'www_expendable_items'
  
  property :id, Serial
  property :category_id, Integer
  property :sn, String
  property :name, String
  property :pinyin, String
  property :specification, String
  property :unit_id, Integer
  property :quantity, Integer
  property :price, Float
  property :amount, Float
  property :early_warning_value, Integer
  property :created, Integer
  property :updated, Integer
end

#日常易耗品分类
class GoodCategory
  include DataMapper::Resource
  storage_names[:default] = 'www_goods_categories'
  
  property :id, Serial
  property :name, String
  property :parent_id, Integer
end


# Log for processed
class Log
  def initialize

  end

  def write
    now = Time.now
    puts now
  end
end

# 生成日常易耗品报表 begin
times = 0
good_categories = GoodCategory.all(:parent_id.gt => 0)
good_categories.each do |good_category|
  worksheet = workbook.add_worksheet(ic.iconv(good_category.name))
  i = 0
  worksheet.write(0, 0, ic.iconv('序号'))
  worksheet.write(0, 2, ic.iconv('编号'))
  worksheet.write(0, 3, ic.iconv('品名'))
  worksheet.write(0, 4, ic.iconv('规格'))
  i += 1  
  expendable_items = ExpendableItem.all(:conditions => {:category_id => good_category.id})

  expendable_items.each do |item|
    worksheet.write(i, 0, i)
    worksheet.write(i, 2, item.sn)
    worksheet.write(i, 3, ic.iconv(item.name))
    worksheet.write(i, 4, ic.iconv(item.specification))
    i += 1
    times += 1
    puts "Processing #{times} record, Please watting......"
  end
  
end
workbook.close
end_time = Time.now
puts "End: #{end_time}"
puts ic.iconv("向 Excel 文件中写入 #{times} 条数据,耗时: #{end_time.to_i - begin_time.to_i} 秒。")
# 生成日常易耗品报表 end
 

 

1
0
分享到:
评论

相关推荐

    php的datamapper实现

    在PHP开发中,数据映射(DataMapper)模式是一种对象关系映射(ORM)方法,它将业务对象与数据库表之间的交互分离出来,提供了一种更灵活的数据访问方式。本项目实现了PHP的DataMapper模式,使得数据操作变得更加...

    IBatis.DataMapper.1.6.2.bin.zip

    - "Ibatis.DataMapper.1.6.2.bin":这是一个单独的1.6.2版本的DataMapper组件,可能是开发或升级过程中需要的特定文件。 5. **实际应用与最佳实践** - 配置管理:正确配置数据库连接信息、事务管理及日志记录等是...

    IBatisNet.DataMapper之简单三层_aspx开发教程.rar

    1. **配置映射文件**:在项目中创建XML映射文件,定义SQL语句、存储过程以及数据对象与数据库表字段的映射关系。 2. **数据对象(Data Transfer Object, DTO)**:创建表示数据库表结构的对象,这些对象将在BLL和...

    IBatis.DataMapper.1.6.2

    在"压缩包子文件的文件名称列表"中,只有一个条目 "iBatis",这可能是指包含 IBatis 数据映射器库的主文件,可能包括了相关的 DLL、XML 配置文件和其他必要的组件。为了在 C# 项目中使用这个版本的 IBatis,开发者...

    Mule ESB WebService Consumer 结合 DataMapper的使用

    本文主要介绍如何利用Mule ESB中的WebService Consumer与DataMapper组件相结合,实现通过HTTP传递参数并调用远程WebService,同时将返回的数据转换为JSON格式展示。 #### WebService Consumer与DataMapper概述 - *...

    IBatisNet.DataMapper 之简单三层

    开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由存储过程实现。(银行大多有这样的限制) 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的SQL语句(或存储...

    iBATIS.NET - DataMapper Application Framework

    在iBATIS.NET中,数据映射的概念是核心,它将数据库操作与应用程序代码分离,通过XML配置文件或.NET注解定义了SQL语句和对象属性之间的映射关系。这种设计模式允许开发者编写更简洁、可维护的代码,同时提高了开发...

    DataMapper 1.6 参考文档

    iBATIS.NET - DataMapper Application Framework Version 1.6.1

    DataMapper-ORM-1.8.2

    - 安装DataMapper:通常通过将文件解压到CodeIgniter的相应目录中完成。 - 配置DataMapper:在`config/data_mapper.php`中设置数据库连接和其他首选项。 - 创建模型:为每个数据库表创建一个PHP类,继承自...

    ibatis.DataMapper.1.6.2 for .net

    6. **分离数据访问层和业务逻辑层**:iBATIS通过接口和XML配置文件将数据访问逻辑从应用程序中分离出来,有助于实现更清晰的分层架构,提高代码的可测试性和可扩展性。 Ibatis.DataMapper.1.6.2.bin这个文件很可能...

    dataMapper:使用Excel映射数据映射数据以生成用于数据集成的XSLT

    数据映射器使用Excel映射数据映射数据以生成用于数据集成的XSLT

    Laravel开发-t3v_datamapper

    在 Laravel 开发中,t3v_datamapper 是一个专门为 Typo3 内容管理系统设计的扩展,旨在将 Laravel 的优雅数据库处理和验证机制引入到 Typo3 中。Laravel 以其强大的功能和简洁的语法深受开发者喜爱,它提供了诸如 ...

    DataMapper1.6.0源码包

    1. **实体管理**:DataMapper允许开发者定义数据模型类,这些类代表数据库中的表。每个类都有与之对应的属性,这些属性与数据库表的字段相对应。通过实例化这些类,开发者可以创建、读取、更新和删除数据库中的记录...

    iBATIS DataMapper1.6 中文翻译

    3. 添加了对字典查询的支持,即`QueryForDictionary, V>(...)`方法,使得查询结果可以映射到字典中,方便数据处理。 4. 允许存储过程无参数映射,简化了无参数存储过程的调用过程。 5. 删除了一些不再使用的方法,如...

    ibatisnet.common.dll Ibatis.DataMapper.dll MySql.Data.dll.rar

    2. **Ibatis.DataMapper.dll**:这个文件是iBATIS.NET的主要数据映射器组件。它提供了数据访问对象(DAO)层的实现,允许开发者通过XML或.NET注解定义SQL语句,然后在运行时动态执行。数据映射器负责将数据库查询...

    ASP.NET-[其他类别]IBatisNet.DataMapper1.6.1.0之简单三层.zip

    这个压缩包文件"ASP.NET-[其他类别]IBatisNet.DataMapper1.6.1.0之简单三层.zip"聚焦于使用IBatisNet.DataMapper库在ASP.NET环境中实现数据持久层的一个简单三层架构。IBatisNet是一个轻量级的ORM(Object-Relational...

    IBatisNet.DataMapper 1.6.1.0 之简单三层_ibatisnetdemo.zip

    在这个示例项目“IBatisNet.DataMapper 1.6.1.0 之简单三层_ibatisnetdemo”中,我们将深入探讨如何利用该框架构建一个具有典型三层架构(表现层、业务逻辑层、数据访问层)的应用程序。 1. **表现层(Presentation...

    IBatis.net-IBatis.DataAccess.1.9.2/IBatis.DataMapper.1.6.2

    2. **数据映射**:通过数据映射器接口,IBatis自动将数据库查询结果映射到.NET对象,或者将对象属性转换为SQL插入、更新和删除语句。 3. **事务管理**:支持在.NET环境下的事务控制,可以在应用程序代码中方便地开启...

    IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2

    使用这些组件,开发者可以轻松地构建数据库驱动的应用程序,通过定义XML映射文件,实现数据的读取、写入和更新,同时保持代码的清晰和模块化。IBatisNet的优势在于其灵活性和可扩展性,使得开发者能够根据项目的具体...

    ASP.NET源码——IBatisNet.DataMapper 1.6.1.0 之简单三层.zip

    3. **数据访问层**:这一层专门处理与数据库的交互,通过IBatisNet.DataMapper框架,开发者可以编写SQL映射文件,定义数据操作的模板,从而避免在业务逻辑层直接编写SQL语句。这层提供了一个抽象层,使得数据库的...

Global site tag (gtag.js) - Google Analytics