2010-09-30 33 views
6

Tôi đang sử dụng ứng dụng Windows. Trong ứng dụng đó tôi đã xuất DataGrid thành Excel thành công ... Bây giờ vấn đề là, Khi tôi xuất khẩu từ lưới vào bảng tính Excel, các giá trị ô có một số dấu màu xanh trên góc trên bên trái trong trang tính Excel ... Tôi nghĩ đó là loại vấn đề cast. Làm thế nào tôi sẽ tránh được vấn đề đó .... và Cách thay đổi giá trị của ô từ văn bản sang Số ... (ví dụ) Chuyển đổi thành Số ...Chuyển đổi giá trị di động Excel từ văn bản sang số bằng cách sử dụng C#

Bất cứ ai có thể cho tôi biết giải pháp của vấn đề này?

Cảm ơn trước

Mã của tôi cho Formatting Đó Excel Tấm Đối với một số dãy các giá trị,

wksheet.Range[GetRanges[0].ToString(), GetRanges[GetRanges.Count-2].ToString()].Merge(); 

wksheet.get_Range(GetRanges[0].ToString(), GetRanges[GetRanges.Count-].ToString()).Interior.Color = Color.FromArgb(192, 0, 0); 

Trả lời

7

Tôi không có một máy tính Windows để thử nghiệm trên vào lúc này, nhưng có lẽ bạn sẽ muốn thử thay đổi định dạng ô, ví dụ:

my_range.NumberFormat = "0.0"; // change number of decimal places as needed 

Dưới đây là một ví dụ đầy đủ từ Microsoft: How to automate Microsoft Excel from Microsoft Visual C#.NET.

+0

Nếu nó là int nghĩa là tôi sẽ cho cái gì trong chuỗi mà bạn đã gửi cho tôi – Suryakavitha

+0

Ok yar Cảm ơn rất nhiều. Tôi sẽ kiểm tra và cho bạn biết – Suryakavitha

0

Khi bạn gán giá trị cho các tế bào, cố gắng để có được tất cả các giá trị trong một 2 chiều mảng đầu tiên và sau đó gán mảng cho Phạm vi. theo cách này, nó sẽ rất nhanh và tôi đoán các giá trị trong ô sẽ là số. thử nó ra ... hy vọng nó sẽ làm việc

+0

tôi nhận nó dưới dạng mảng hai chiều ... Tôi muốn chuyển đổi một số giá trị thành Số .. – Suryakavitha

1

Quy trình sau sẽ tự động điền bảng tính từ dữ liệu (văn bản và số) vào tệp văn bản.

Trình phát đang sử dụng mảng đối tượng để đặt giá trị.

StreamReader STRead; 
String[] STCells; 
object[] cellData; 
int temp; 
Excel.Range tempRange; 
for (int i = 0; i < FileList.Length; i++) 
{ 
    STRead = FileList[i].OpenText(); 
    int j = 0; 
    while (!STRead.EndOfStream) 
    { 
     STCells = STRead.ReadLine().Split(','); 
     cellData = new object[STCells.Length]; 
     for (int k = 0; k < STCells.Length; k++) 
     { 
      if (Int32.TryParse(STCells[k], out temp)) 
       cellData[k] = temp; 
      else 
       cellData[k] = STCells[k]; 
     } 
     tempRange = sheetList[i].get_Range(ReturnCellID(j, 0), 
              ReturnCellID(j, STCells.Length - 1)); 
     j++; 
     tempRange.Value2 = cellData; 
    } 
    STRead.Close(); 
} 
0

Thay đổi giá trị ô từ văn bản thành Số thật dễ dàng với Excel Jet Cell .NET component.

Cell["A1"].Style.StringFormat = "##.#"; // or "0.0" same as in MS Excel 
1

Tôi gặp sự cố này với bảng excel chứa cả số thường và phần trăm (kết quả xuất một chuỗi từ Báo cáo tinh thể).

Để thay đổi tất cả chúng cùng một lúc tôi đã thực hiện một vòng lặp hơi như thế này:

//example range 
Excel.Range rng = mWorkSheet.get_Range("A1", "H25"); 
foreach (Excel.Range range in rng) 
{ 
    if (range.Value != null) 
    { 
     int number; 
     bool isNumber = int.TryParse(range.Value.ToString().Trim(), out number); 
     if (isNumber) 
     { 
      range.NumberFormat = "#,##0"; 
      range.Value = number; 
     } 
     else 
     { 
      //the percent values were decimals with commas in the string  
      string temp = range.Value.ToString(); 
      temp = temp.Replace(",", "."); 
      range.Value = temp; 
     } 
    } 
} 

Kết quả là cả hai chuỗi tỷ lệ phần trăm và số lượng đã chuyển đổi sang định dạng Excel đúng.

Các vấn đề liên quan