浏览 3715 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-10
假如我们的数据已经放到excel中,当然不是ms的excel,而是open office中的excel。 我们的数据结构很简单,第一列是一个数值,第二列是一个字符串。 第一种 用mysql自带方法 进入mysql中 load data local infile '/working/industry.csv' INTO TABLE mynewtable fields terminated by ';' lines terminated by '\n' (name); 其中mynewtable是我们在mysql中创建的表,包括字段和类型都事先定义好。 第二种是用程序,用ruby写了一种。思路是先把excel文件另存为csv格式,再用ruby读取,再插入到数据库中。 require "mysql" begin # connect to the MySQL server dbh = Mysql.real_connect("localhost", "root", "password", "myappdb") dbh.query("SET NAMES utf8") File.open('/working/industry.csv').each_line{ |s| lines = s.split(',') sql = "insert into industries(ordervalue,name) values(" + lines[0] +",'" + lines[1].gsub("\"", "") +"');" #puts sql dbh.query(sql) } puts "Server version: " + dbh.get_server_info rescue Mysql::Error => e puts "Error code: #{e.errno}" puts "Error message: #{e.error}" puts "Error SQLSTATE: #{e.sqlstate}" if e.respond_to?("sqlstate") ensure # disconnect from server dbh.close if dbh end 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-07-10
用activerecord呀......
前几天写的一个: #平台:ruby 1.8.6 #需要下载activerecord库 #gem install activerecord require 'rubygems' require 'activerecord' require 'yaml' require 'logger' #配置数据库连接信息 dbconfig = YAML.load(DATA.read)["lawyer"] ActiveRecord::Base.establish_connection(dbconfig) #数据库log ActiveRecord::Base.logger = Logger.new(File.open('database.log', 'a')) #构造Lawyer模型 class Lawyer < ActiveRecord::Base;end class String #转换Lawyer Name的格式 def format_name self.split(/,/).reverse.join(" ").tr("'","") end end #获取var_list.html文件内容 html = open("bar_list.html").read #构造匹配所需内容的正则表达式 reg =/ <tr\s+class="[^"]+"> \s* <td><a\s+href="[^"]+"\s+class="[^"]+">(.*?)<\/a><\/td> <td>(.*?)<\/td> <td>(.*?)<\/td> <td>(.*?)<\/td> <td>(.*?)<\/td> \s* <\/tr> /xm #用正则获取所需内容并保存在lawyer_array数组中 lawyer_array = html.scan(reg) #转换数组为哈希,以便存入mysql lawyer_hash = lawyer_array.map do |la| { :lawyer_name => la[0].format_name, #格式化Name :status =>la[1], :bar_number => la[2], :city =>la[3], :admission_date =>Date.parse(la[4]) #把字符形式转换成Date } end #存入mysql lawyers = Lawyer.create lawyer_hash #以下为数据库连接配置,请根据自己的账户和密码设置.. __END__ lawyer: adapter: mysql encoding: utf8 reconnect: false database: lawyer pool: 5 username: root password: host: localhost |
|
返回顶楼 | |
发表时间:2009-07-10
嗯,不错,你的这个更人性化了。
而我的方法更近原始,哈哈 |
|
返回顶楼 | |
发表时间:2009-07-10
用rake+activerecord
|
|
返回顶楼 | |