2012-08-14 74 views
1

我正在將數據寫入另一個Excel工作表的Excel工作表。然而,對於一個列的數據可能看起來像以下任一:紅寶石電子表格 - 格式問題

  • $0.00
  • The amount owed at time of service is $33
  • 20%
  • 或空字符串。

我的問題是,當我把它寫入文件,Excel將標誌着列作爲「常規」格式化,並剝去$%並使其0.2。有沒有辦法將格式設置爲純字符串,以便在寫入電子表格時保持數據不變?

我是Ruby新手,所以如果你看到任何代碼應該以另一種方式做,請讓我知道。

代碼示例:

def self.add_data(new_book_sheet, old_book_sheet) 
    row_index = 9 
    header_row = 0 
    old_book_sheet.each do |row| 
    if header_row > 0 
     column_index = 0 
     row.each do |column| 
     new_book_sheet.row(row_index).insert(column_index, column) 
     column_index += 1 
     end 
     row_index += 1 
    end 
    header_row = 1 
    end 
end 
+0

因此,如果有人知道如何讓它以字符串的形式讀取它,而不是將其轉換爲「數字」,那將會很棒。藉助我的小紅寶石體驗,我試圖做到這一點| column.to_s |但只是拋出了一個錯誤。在我輸入column.to_s的時候,如果我輸入了$或者20%已經變爲0或者.2。 – covard 2012-08-15 21:10:15

+0

如果您使用的是ruby電子表格gem,則可以使用Row#方法獲取原始值(不使用數字格式)。看看http://spreadsheet.rubyforge.org/Spreadsheet/Row.html – satish 2012-10-11 08:32:07

回答

1

輸出前加一個單引號和Excel將它解釋爲文本。我測試了在Excel以下(直接在電子表格中,不使用寶石),並全部被解釋爲字符串:

  • '$0.00
  • 'The amount owed at time of service is $33
  • '20%
  • '
+0

是的,這確實在Excel文件中工作。但是我想出了我真正的問題。看到我的答案 – covard 2012-08-15 21:05:22

2

所以問題是,當它從原始excel文件中讀取數據時,如果它只是一個「數字」類型,它就是這樣讀取的,所以$ 0.00就是r將其作爲0. 我認爲問題出在數據的寫入上,但實際上是在讀取數據時。