尝试使用Apache POI打开XLS文件时遇到问题。我正在将HSSF集成到Rails应用程序中。
我的代码如下:
require "rjb"
Rjb::add_jar(File.expand_path('demo/poi-3.9/poi-3.9-20121203.jar'))
Rjb::add_jar(File.expand_path('demo/poi-3.9/commons-codec-1.7.jar'))
Black = Rjb::import 'org.apache.poi.hssf.util.HSSFColor$BLACK'
HSSFCell = Rjb::import 'org.apache.poi.hssf.usermodel.HSSFCell'
HSSFCellStyle = Rjb::import 'org.apache.poi.hssf.usermodel.HSSFCellStyle'
HSSFFont = Rjb::import 'org.apache.poi.hssf.usermodel.HSSFFont'
HSSFWorkbook = Rjb::import 'org.apache.poi.hssf.usermodel.HSSFWorkbook'
IOUtils = Rjb::import 'org.apache.poi.util.IOUtils'
JavaFont = Rjb::import 'java.awt.Font'
FileInputStream = Rjb::import 'java.io.FileInputStream'
FileOutputStream = Rjb::import 'java.io.FileOutputStream'
def self.export_xls (params)
file = "tmp/#{Time.now.to_formatted_s(:number)}_#{abc}.xls"
@book = HSSFWorkbook.new
@sheet1 = @book.createSheet l(:report_name)
@drawing = @sheet1.createDrawingPatriarch()
@number_of_column = 0
@number_of_column_to_merge = 10
black = Black.index
@styleTableTitle = @book.createCellStyle()
@styleTableTitle.setBorderBottom(HSSFCellStyle.BORDER_THIN)
@styleTableTitle.setBottomBorderColor(black)
out = FileOutputStream.new("#{Rails.root}/" + file)
@book.write(out)
out.close()
file
end
抛出异常:
RuntimeError (java.lang.ClassNotFoundException: org.apache.poi.hssf.util.HSSFColor$BLACK)
导入的jar(Apache POI):
poi-3.9-20121203
poi-3.7-20101029
commons-codec-1.7