我想使用xlrd和xlutils修改xlsx文件中的字符串。
有一些解决方案,一个来自stackoverflow,另一个来自YouTube,用于xls文件。
但是,这些解决方案仅适用于xls格式。我尝试将这些用于xlsx格式但会破坏文件。
使用xlsx文件时是否有解决方案? 或者我应该使用其他包来解决这个问题?
- 最好的问候
答案 0 :(得分:0)
class Character
attr :gender
def initialize(g = nil)
valid? g ? @gender = g : @gender = random_gender
end
def gender=(g)
@gender = g if valid? g
end
def self.list_genders
new.genders.each_with_index { |gender, idx| puts "#{idx+1} - #{gender}" }
end
def valid?(g)
g && genders.include?(g)
end
def genders
[:male, :female]
end
def random_gender
genders.sample
end
end
Character.list_genders
character = Character.new
p character.gender
character = Character.new(:male)
p character.gender
character.gender = :female
character.gender = :none
p character.gender
依赖于xlutils
(读取文件)和xlrd
(写入文件)包stated here。
xlwt
只能编写.xls格式的文件。
要阅读.xlsx格式的文件,应使用xlwt
或openpyxl
。
要写入.xlsx格式的文件,应使用XLRD
或openpyxl
。
或者,如果您要在安装了Microsoft Excel的计算机上运行代码,则可能需要尝试xlsxwritter
。
得知: According to jmcnamara xlwings
和xlrd
格式是不同的对象类型,因此,尽管两者都可用于.xlsx文件,我需要编写一个翻译器,以便能够使用xlsxwritter
编写xlrd
格式的文件。