2014-05-20 32 views
-1

我有一個從excel工作表中取得數據並填充數據表的excel導入器。 當單元格實際包含「3.4」時,我的函數返回一個類似「1/3/1900 9:36:00 AM」的值 整個Excel工作表被格式化爲「文本」,並且由於某些客戶端而無法更改格式限制。Excel中的返回日期而不是Excel中的值

我的樣本函數:

DataRow dataRow = table.Rows[i]; 

B= new B(); 
string value = (dataRow[index] != null) && (!dataRow[index].ToString().Trim().Equals("NA")) ? dataRow[index].ToString().Trim() : null; 
A= (value != null && value.Length!=0) ? value : A; 
B.Name = A; 

value = (dataRow[++index] != null) && (!dataRow[index].ToString().ToString().Trim().Equals("NA")) ? dataRow[index].ToString().Trim() : null; 
B.Name += " " + value; 

連接字符串是

string strConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" 
      + "Data Source='" + filePath + "';" 
      + "Extended Properties='Excel 12.0;HDR=No;IMEX=1;'"; 

我使用IMEX = 1,甚至隨後還我無法找出確切的錯誤。從Excel工作表

---------- 
Returning   -------- Ideally should return 

1/3/1900 9:36:00 AM ---------->> 3.4 

1/3/1900 12:00:00 PM ---------->> 3.5 

1/4/1900 2:24:00 AM ---------->> 4.1.1 

1/4/1900 2:24:00 AM ---------->> 4.1.2 

1/4/1900 2:24:00 AM ---------->> 4.1.3 

1/4/1900 4:48:00 ------------>> 4.2 

樣品,其中A欄是象下面這樣:

2013年5月16日

上午09時14分00秒 帕拉。

3.1

3.2

3.3

3.4

3.5

4.1

4.1.1

4.1.2

4.1.3

4.2

4.3

5.1

5.1.1

5.1.2

+1

「我的函數正在返回一個值」哪個函數?那裏有什麼代碼? 'IMEX = 1'被假設爲將所有數據視爲文本,所以我很困惑爲什麼3.4被翻譯成日期/時間。 –

+0

嗨Stanley,作爲Index 0的excel表欄1如同一個數據在其他時間休息時爲3.1,3.2,3.3,3.4 excel的樣本爲:5/16/2013 12:14 :00 AM Para。 3.1 3.2 3.3 3.4 3.5 4.1 4.1.1 4.1.2 4.1.3 4.2 – suu

+0

你可以添加到這個問題,以便它可以正確格式化? –

回答

1

更改excel中的單元格類型。

  1. 選擇所有的列值
  2. 點擊右鍵,選擇設置單元格格式
  3. 選擇數量型
+0

我不能改變Excel表格的格式 – suu

0

您可以通過格式化細胞一般解決問題或其他不是日期(這是單元格當前的格式)。

使用類似下面的一般格式的一行:

Range("A1").NumberFormat = "General" 

其中A1代表你希望格式化的範圍內。您可以擴展它來覆蓋您關心的所有單元格。

祝你好運!

相關問題