2016-12-02 33 views
0

我想在Excel中使用多選列表。希望excel應該包含vb宏。所以我試圖通過ruby動態地將宏添加到excel中。但我沒有任何想法。是否有任何其他選項可以在rails上使用單個和多個選擇列表選項生成excel。將宏添加到Excel中的多重分區中

我使用的是Ubuntu和libreoffice。我已經手動嘗試在Windows中的Excel中添加宏vb腳本,它正在工作。但我不能用紅寶石做。請建議是否有任何其他的解決方案是有

+0

嗨,如果你可以編輯你的文章,包括你已經嘗試過的任何代碼,我們可以更好地幫助你找到你的答案 – CallumDA

回答

0
require 'writeexcel' 
@data_array = ["option","aaa","bbb","ccc","ddd","eee","fff","ggg"] 
workbook = WriteExcel.new('single_select_dropdown.xls') 
worksheet = workbook.add_worksheet('sheet1') 
worksheet.set_column('A:A', 30) 
worksheet.set_column('B:B', 30) 
worksheet.set_column('C:C', 20) 
worksheet.set_column('A:D', 30) 
worksheet.write(0, 0, 'Select Your Option') 
worksheet.write(0, 1, 'option') 
worksheet.data_validation(0, 1, 
    { 
     :validate  => 'list', 
     :source   => @data_array 
    }) 

worksheet.write(10, 2, "Your option is") 
worksheet.write(10, 3, "=B1") 
workbook.close 

,這是一個通過紅寶石單選擇動態列表,並且仍然在嘗試多選擇列表

0
require "rubygems" 

require 'write_xlsx' 

@data_array = ["aaa","bbb","ccc","ddd","eee","fff","ggg"] 

workbook = WriteXLSX.new('multiple_select_vba_project.xlsm') 

workbook.set_vba_name('Workbook') 
worksheet = workbook.add_worksheet 
worksheet.set_vba_name('Sheet1') 

worksheet.activate() #don't forgot to add this 

worksheet.set_column('A:A', 30) 
worksheet.set_column('C:C', 30) 

workbook.add_vba_project('vbaProject.bin') 

worksheet.write(1, 0, 'select your option') 
worksheet.write(1, 2, 'option') 
worksheet.data_validation(1, 2, 
    { 
     :validate  => 'list', 
     :source   => @data_array 
    }) 

workbook.close 

還需要vbaProject.bin文件.. 需要從現有的xls文件使用提取vbaProject.bin文件此命令

extract_vba filename.xlsm 

如果假設有任何錯誤,請更新您的libexcel-作家的xlsx-perl的寶石我們這個命令

sudo apt-get -f install