lib/ld/excel/excel.rb in ld-0.3.6 vs lib/ld/excel/excel.rb in ld-0.4.1
- old
+ new
@@ -2,11 +2,10 @@
Spreadsheet.client_encoding = 'UTF-8'
class Ld::Excel
attr_accessor :excel, :path
- #= 参数 path(可以为空)
def initialize path = nil
if path
if path.match(/.xls$/)
if File::exist? path
@excel = Spreadsheet.open path
@@ -20,40 +19,32 @@
else
@excel = Spreadsheet::Workbook.new
end
end
- #= 作用 打开一个xls文件
- #= 参数 xls文件的全路径或相对路径的字符串
- #= 示例 Ld::Excel.open 'project.xls'
- #= 返回 Ld::Excel实例
+ #= 作用 打开一个xls文件,返回Ld::Excel实例
def self.open path
self.new path
end
- #= 作用 写xls文件(会创建一个新的xls文件)
- #= 返回 如果创建成功,返回Ld::Excel实例.如果创建失败会返回false(不会导致程序终止)
- #= 参数1 path 字符串,指定要写的文件路径(最好使用全路径)
+ #= 作用 写excel(创建新的xls文件)
def self.write path, &block
if path.class == Hash
path = path[:file_path]
end
excel = Ld::Excel.new
block.call excel
excel.save path
end
- #= 作用 write的同名方法,作用和使用方法完全一样
+ #= 作用 write的同名方法
def self.create path, &block
self.write path, &block
end
- #= 作用 读xls文件中的内容
+ #= 作用 读xls文件中的内容,二维数组
#= 示例 Ld::Excel.read "Sheet1?A1:B2"
- #= 示例 Ld::Excel.read "Sheet1?A1:B2+C,D"
- #= 示例 Ld::Excel.read "Sheet1?A1:B2+C,D,1,2"
- #= 返回 二维数组
def read params, show_location = false
case params.class.to_s
when 'String'
shett_name, scope = params.split('?')
@current_sheet = open_sheet shett_name
@@ -66,25 +57,19 @@
@current_sheet.read params, params[:location]
end
end
#= 作用 与read方法相同(但会多返回坐标数据)
- #= 返回 与read方法相同(但会多返回坐标数据)
- #= 示例 与read方法相同(但会多返回坐标数据)
def read_with_location params
read params, true
end
- #= 作用 如果xls文件内容有改变,可以刷新(会重新open一次,但这个方法不需要再传入参数了)
- #= 参数 无需参数
- #= 返回 Ld::Excel实例
+ # 作用 如果xls文件内容有改变,可以刷新(会重新open一次,但这个方法不需要再传入参数了)
def flush
@excel = Ld::Excel.open @path
end
- #= 作用 保存数据到一个路径
- #= 返回 如果创建成功,返回Ld::Excel实例.如果创建失败会返回false(不会导致程序终止)
- #= 参数1 path 字符串,指定要写的文件路径(最好使用全路径)
+ # 作用 保存(真正执行io写入操作)
def save path
puts "Covers a file: #{path}" if File.exist? path
@excel.write path
puts "Excel save success!"
self