C# Excel Interop: How to format cells to store values as text

前端 未结 3 1754
一生所求
一生所求 2021-02-07 04:05

I\'m writing numbers to an Excel spreadsheet from a DataTable and all of these numbers are 5 digits long with preceding 0s if the number itself is less than 5 digit

相关标签:
3条回答
  • 2021-02-07 04:24

    This answer just solved a major problem with a solution from one of our company's software, I had to retrieve the value as displayed, but once I set it to the new sheet, it was being inserted as a number. Simple solution. I cant vote up as yet, but down follows how it ended up.

    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 讨论(0)
  • 2021-02-07 04:29

    //where [1] is column number which you want to make text

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

    //If you want to format a particular column in all sheets in a workbook - use below code. Remove loop for single sheet along with slight changes.

    //path were excel file is kept

    string 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);
    
    0 讨论(0)
  • 2021-02-07 04:45

    You can SomeRange.NumberFormat = "@"; or if you prefix the value with a ' and write it to the cell excel will treat it as a number-stored-as-text and provide a visual cue.

    0 讨论(0)
提交回复
热议问题