2011-09-28 19 views
18

Bir DataTable numaralı belgeden bir Excel elektronik tablosuna sayı yazıyorum ve bu sayılar 5 rakamdan daha azsa, 0'dan önceki rakamlarla 5 rakam uzunluğundadır (yani 395 örneğin 00395 olarak saklanır).C# Excel Interop: Değerleri metin olarak depolamak için hücreleri biçimlendirme

Bu sayıları Excel'e (C# kullanarak) girerken, onları sayı olarak saklar ve önceki 0'ları eler. Değerlerin sayılar yerine metin olarak saklanmasını sağlamak için hücreleri C# biçiminde biçimlendirmenin herhangi bir yolu var mı?

+2

bakınız Bu cevap http://stackoverflow.com/questions/2067926/format-an-excel-column-or-cell-as-text-in-c – katit

+1

@Katit: Soru maçları iken Buradaki cevap, üçüncü parti kütüphanelere dayanmadığı için daha iyi IMHO'dur. –

+0

Evet, – katit

cevap

24

SomeRange.NumberFormat = "@"; veya ' ile değeri öneklerseniz ve bunu hücrelere yazmak gerekirse, metin olarak depolanmış bir numara gibi davranır ve görsel bir işaret sağlar.

+0

olduğunu fark etmediniz, bu düzeltildi! Çok takdir edildi. – Closeratio

2

Bu cevap, şirketimizin yazılımlarından birindeki bir çözümle ilgili büyük bir problemi çözdü, görüntülenen değeri almak zorunda kaldım, ancak bunu yeni sayfaya ayarladığımda, bir sayı olarak ekleniyordu. Basit bir çözüm. Henüz oy veremiyorum, ancak nasıl sona erdiğini izler. [1] Bir çalışma kitabındaki tüm sayfaları belirli bir sütun biçimlendirmek istiyorsanız metni

ExcelWorksheet.Columns[1].NumberFormat = "@"; 

// yapmak istiyorum sütun sayısıdır

for (int h = 1; h <= 1; h++) 
{ 
    int col = lastColl(sheets); 
    for (int r = 1; r <= src.Count; r++) 
    { 
     sheets.Cells[r, col + 1] = "'"+src.Cells[r, h].Text.ToString().Trim(); 
    } 
} 
0

// - aşağıdan kodu. Küçük değişiklikler ile birlikte tek sayfa için döngü çıkarın.

// yolu vardı excel dosyasının saklandığı

dize ResultsFilePath = @ "C: \ Users \ krakhil \ Desktop \ TGUW EXCEL \ TEST";

Excel.Application ExcelApp = new Excel.Application(); 
    Excel.Workbook ExcelWorkbook = ExcelApp.Workbooks.Open(ResultsFilePath); 
    ExcelApp.Visible = true; 

    //Looping through all available sheets 
    foreach (Excel.Worksheet ExcelWorksheet in ExcelWorkbook.Sheets) 
    {     
     //Selecting the worksheet where we want to perform action 
     ExcelWorksheet.Select(Type.Missing); 
     ExcelWorksheet.Columns[1].NumberFormat = "@"; 
    } 

    //saving excel file using Interop 
    ExcelWorkbook.Save(); 

    //closing file and releasing resources 
    ExcelWorkbook.Close(Type.Missing, Type.Missing, Type.Missing); 
    Marshal.FinalReleaseComObject(ExcelWorkbook); 
    ExcelApp.Quit(); 
    Marshal.FinalReleaseComObject(ExcelApp); 
İlgili konular