我从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