C# 在windows c中将excel中的数字更改为文本格式#

C# 在windows c中将excel中的数字更改为文本格式#,c#,windows,excel,C#,Windows,Excel,我正在将数据从datagridview导出到excel工作表。数据由数字和字符组成。数字显示在单元格的最右侧,而字符显示在左侧。我缺少一些数字格式。我希望数字也显示在单元格的左侧。下面是导出到excel的代码 private void button3_Click(object sender, EventArgs e) { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.W

我正在将数据从datagridview导出到excel工作表。数据由数字和字符组成。数字显示在单元格的最右侧,而字符显示在左侧。我缺少一些数字格式。我希望数字也显示在单元格的左侧。下面是导出到excel的代码

 private void button3_Click(object sender, EventArgs e)
    {
        Excel.Application xlApp;
        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
      Excel.Range oRange;

        object misValue = System.Reflection.Missing.Value;

        xlApp = new Excel.Application();
        xlWorkBook = xlApp.Workbooks.Add(misValue);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
        Excel.Range aRangeSingle = xlWorkSheet.get_Range("A1", "A1");
        aRangeSingle.ColumnWidth = 37;

        Excel.Range aRangeSingle2 = xlWorkSheet.get_Range("B1", "B1");
        aRangeSingle2.ColumnWidth = 65;



        int i = 0;
        int j = 0;
        try
        {

            for (i = 0; i <= dataGridView2.RowCount - 1; i++)
            {
                for (j = 0; j <= dataGridView2.ColumnCount - 1; j++)
                {
                    DataGridViewCell cell = dataGridView2[j, i];
                    xlWorkSheet.Cells[i + 1, j + 1] = cell.Value;//this has numbers also


                }
            }

        }
        catch (Exception)
        {
            MessageBox.Show("server not available while export to excel");
        } 
private void按钮3\u单击(对象发送者,事件参数e)
{
Excel.applicationxlapp;
Excel.工作簿;
Excel工作表;
Excel.Range橙色;
对象错误值=System.Reflection.Missing.Value;
xlApp=new Excel.Application();
xlWorkBook=xlApp.Workbooks.Add(错误值);
xlWorkSheet=(Excel.Worksheet)xlWorkBook.Worksheets.get_项(1);
Excel.Range aRangeSingle=xl工作表。获取范围(“A1”、“A1”);
ArangeSignle.ColumnWidth=37;
Excel.Range aRangeSingle2=xlWorkSheet.get_Range(“B1”、“B1”);
aRangeSingle2.ColumnWidth=65;
int i=0;
int j=0;
尝试
{
对于(i=0;i将行更改为:

xlWorkSheet.Cells[i + 1, j + 1] = "'" + cell.Value;

如果excel在开头看到一个单引号,它会假定它是一个文本。但在这种情况下,计算不能作为数字使用。如果要用作数字,请将单元格向左对齐

您需要设置单元格的水平对齐属性。oRange.HorizontalAlignment不是对特定问题的回答,但请查看。您可以填充Excel范围比循环的2快得多。关于你的问题:使用@andy的解决方案。应该是这样。我尝试过这个方法,但在Excel的左上角我看到一个小标记,表示警告数字已更改为文本。我可以避免吗