如何使用Aspose Cells在Excel中将第一个数字显示为0(零)

时间:2017-05-26 05:57:39

标签: c# aspose-cells

我需要在Downloaded Excel中显示'0565'。在数据表中,值为“0565”,但在将数据表分配给工作表后,下载的excel将值显示为“565”。这是我需要显示的ID,因为它是'0565'。以下是我的代码

     DataTable dtExcelData = GetDataTableValue(); 
     dtExcelData.TableName = psPlanNo + "Template";

        var workbook = new Workbook();
        var worksheet = workbook.Worksheets[0];         
        worksheet.Cells.ImportDataTable(dtExcelData, true, 0, 0, true,true); 
        worksheet.AutoFilter.Range = worksheet.Cells.FirstCell.Name + ":" + worksheet.Cells.LastCell.Name;
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "";
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=" + psPlanNo + psSuffix + ".xlsx");
        worksheet.AutoFitColumns();

        Aspose.Cells.Style style = worksheet.Cells["A1"].GetStyle();
        style.ForegroundThemeColor = new ThemeColor(ThemeColorType.Accent1, 0);
        style.Font.Color = Color.White;
        style.Pattern = BackgroundType.Solid;

        for (int lnColumn = 0; lnColumn <= worksheet.Cells.MaxColumn;  lnColumn++)
            worksheet.Cells[0, lnColumn].SetStyle(style);

        Cells cells = worksheet.Cells;
        Aspose.Cells.Style fontStyle = new Aspose.Cells.Style();
        Aspose.Cells.Style stylefont = workbook.Styles[workbook.Styles.Add()];
        stylefont.Font.Name = "Calibri";
        stylefont.Font.Size = 12;
        StyleFlag flag = new StyleFlag();
        flag.FontName = true;
        flag.FontSize = true;
        cells.ApplyStyle(stylefont, flag);

      using (MemoryStream memoryStream = new MemoryStream())
        {
            workbook.Save(memoryStream, SaveFormat.Xlsx);
            memoryStream.WriteTo(Response.OutputStream);
            HttpContext.Current.Response.Flush();
            HttpContext.Current.Response.SuppressContent = true;
            HttpContext.Current.ApplicationInstance.CompleteRequest();
        }

突出显示的行是将数据集值分配给工作表,并在Excel中将字符串显示为数字。 如果我使用此代码

  worksheet.Cells.ImportDataTable(dtExcelData, true, 0, 0, true,false); 

我会得到'0565'但是有些列应该是数字格式,也会转换为文本。

我的问题还有其他选择???? 在此先感谢

1 个答案:

答案 0 :(得分:0)

请将最后一个参数从true设置为false。

worksheet.Cells.ImportDataTable(dtExcelData, true, 0, 0, true, false);

它应该解决你的问题。最后一个参数表示convertStringToNumber,如果将其设置为false,则它不会将字符串转换为数字。

如果您不想使用此属性,请在数字字符串前指定',即

0555

应该像

'0055

然后它会正常工作。

注意: 我在Aspose担任开发人员传播者