我從DataTable
和所有這些數字寫號到Excel電子表格是5個位數與前面的0,如果數字本身少於5個位數(例如,395將被存儲爲00395)。C#的Excel互操作:如何格式化細胞值存儲爲文本
將這些數字輸入Excel(使用C#)時,它將它們存儲爲數字並消除前面的0。有沒有什麼辦法可以格式化C#中的單元格,以便將值存儲爲文本而不是數字?
我從DataTable
和所有這些數字寫號到Excel電子表格是5個位數與前面的0,如果數字本身少於5個位數(例如,395將被存儲爲00395)。C#的Excel互操作:如何格式化細胞值存儲爲文本
將這些數字輸入Excel(使用C#)時,它將它們存儲爲數字並消除前面的0。有沒有什麼辦法可以格式化C#中的單元格,以便將值存儲爲文本而不是數字?
可以SomeRange.NumberFormat = "@";
或者如果你有一個'
前綴值,並將其寫入單元格的Excel將把它作爲一個存儲的號碼 - - 如文本,並提供可視的提示。
感謝,這是定了!非常感激。 – Closeratio
這個答案只是解決了一個可以解決的主要問題,從我們公司的軟件之一,我作爲顯示檢索值,但一旦我將其設置爲新的工作表,它被插入的數目。 簡單的解決方案。 我現在還沒有投票,但下來如何結束。
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();
}
}
//其中[1]是你想文本
ExcelWorksheet.Columns[1].NumberFormat = "@";
//如果你想格式化工作簿中的所有工作表的特定列列數 - 使用下面碼。除了輕微的變化,去除單頁的循環。
//路徑是excel文件保持
串ResultsFilePath = @ 「C:\用戶\ krakhil \桌面\ 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);
看到這個答案 http://stackoverflow.com/questions/2067926/format-an-excel-column-or-cell-as-text-in-c – katit
@Katit:雖然問題比賽,這裏的答案是更好的恕我直言,因爲它不依賴於第三方庫。 –
是的,沒有注意到 – katit