Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Excel互操作:如何格式化单元格以将值存储为文本_C#_Excel_Interop - Fatal编程技术网

C#Excel互操作:如何格式化单元格以将值存储为文本

C#Excel互操作:如何格式化单元格以将值存储为文本,c#,excel,interop,C#,Excel,Interop,我从数据表将数字写入Excel电子表格,如果数字本身小于5位数,则所有这些数字都是5位数,前面是0(例如,395将存储为00395) 当将这些数字输入Excel(使用C#)时,它将它们存储为数字并消除前面的0。是否有任何方法可以从C#中格式化单元格,以便将值存储为文本而不是数字 您可以SomeRange.NumberFormat=“@”或者如果您在值前面加上,并将其写入单元格,excel会将其视为一个以文本形式存储的数字,并提供视觉提示。这个答案刚刚解决了我们公司某个软件解决方案的一个主要问题,

我从
数据表
将数字写入Excel电子表格,如果数字本身小于5位数,则所有这些数字都是5位数,前面是0(例如,395将存储为00395)


当将这些数字输入Excel(使用C#)时,它将它们存储为数字并消除前面的0。是否有任何方法可以从C#中格式化单元格,以便将值存储为文本而不是数字

您可以
SomeRange.NumberFormat=“@”
或者如果您在值前面加上
并将其写入单元格,excel会将其视为一个以文本形式存储的数字,并提供视觉提示。

这个答案刚刚解决了我们公司某个软件解决方案的一个主要问题,我必须按显示方式检索该值,但一旦我将其设置到新的工作表,它被作为一个数字插入。 简单的解决方案。 我还不能投赞成票,但最后还是投了反对票

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();
    }
}

for(int h=1;h//其中[1]是要生成文本的列号

ExcelWorksheet.Columns[1].NumberFormat = "@";
//如果要在工作簿的所有工作表中设置特定列的格式,请使用下面的代码。删除单个工作表的循环,并进行轻微更改

//保存excel文件的路径

字符串ResultsFilePath=@“C:\Users\krakhil\Desktop\TGUW EXCEL\TEST”


看到这个答案@Katit:虽然问题匹配,但这里的答案更好,因为它不依赖第三方库。谢谢,这已经解决了!非常感谢。这是有效的,而更改数字格式的解决方案在我使用联邦快递跟踪代码(14位)的情况下不起作用。
    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);