2012-10-19 53 views
1

我需要讀取Excel表格的內容,寫入並允許編輯和重新導入。我遇到的問題是,當用戶在工作表中的單元格中輸入數字時,數字在後面考慮了SharedString表上的索引,這是我不需要的效果。我想要做的是強制工作表中的單元格格式化爲文本,然後再繼續閱讀。我相信這一點,我相信我的數字將被視爲字符串。我該如何做到這一點?在讀取單元格內容之前以編程方式將表格的格式設置爲文本

我希望使用OPENXML庫來解決這個問題。

回答

1

這樣在VBA:

Cells.Select 
Selection.NumberFormat = "@" 
+0

我在OPENXML我的工作等的預定義numeberFormat,不好受在圖書館裏找到上述內容。如果在OPENXML中,我請求這個名稱空間? – Kobojunkie

2

的唯一途徑可以肯定,你從Excel檢索將是一個字符串是調用Range.Text(這將基於當前的格式返回顯示的文本),它只能用單個單元格進行檢索。

但是,如果你想的格式文本,然後只要致電:

Cells.NumberFormat = "@" 

至於進一步的細節,我在上面說...更改格式不改變細胞的.value的。值通常是字符串,日期或雙精度,具體取決於其數字格式和內容。


編輯
由於你最後的評論,我爲你做一些額外的研究。但是,這並沒有經過我的測試。如果這對您沒有幫助,我建議更新您的問題,以顯示您嘗試幫助獲得社區更多回復的內容。

您應該可以利用this answer中列出的步驟(確保在上面提供幫助的時候可以開啓上面的步驟)。

唯一的變化,你應該可以跳過創建一個NumberingFormat。當你的代碼: cellFormat.NumberFormatId = nf2decimal.NumberFormatId;代替nf2decimal ...只需使用49左右... cellFormat.NumberFormatId = 49; 49應與@according to this source

+0

我是否可以在工作表,行或我從行中提取的每個單元格上調用它? – Kobojunkie

+0

這是什麼? 'Cells.Numberformat'適用於範圍或工作表。如果在像Worksheet.Cells.Numberformat這樣的工作表上調用,它將影響工作表中的所有單元格。 –

+0

你在那裏使用什麼庫?我仍然沒有在我的單元格和工作表上找到numberformat屬性。 – Kobojunkie

相關問題