Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.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# 如何使用Aspose单元格在Excel中显示第一位数字为0(零)的数字_C#_Aspose Cells - Fatal编程技术网

C# 如何使用Aspose单元格在Excel中显示第一位数字为0(零)的数字

C# 如何使用Aspose单元格在Excel中显示第一位数字为0(零)的数字,c#,aspose-cells,C#,Aspose Cells,我需要在下载的Excel中显示“0565”。在datatable中,值为“0565”,但将datatable分配给工作表后,下载的excel将值显示为“565”。这是一个id,我需要将其显示为“0565”。下面是我的代码 DataTable dtExcelData = GetDataTableValue(); dtExcelData.TableName = psPlanNo + "Template"; var workbook = new Workbook

我需要在下载的Excel中显示“0565”。在datatable中,值为“0565”,但将datatable分配给工作表后,下载的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();
        }
我将得到'0565',但有一些列应该是数字格式,也将转换为文本

我的问题还有别的解决办法吗????
提前感谢

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

i、 e

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

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

0555
应该是

'0055
到时候它会好用的


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

我不想同时使用这两种技术。还有其他解决方案吗?有另一种方法可以将所有字符串值转换为数字,这也不是一个很好的方法,但可能您可以利用它。i、 e.工作表.Cells.ConvertStringToNumericValue();针对您的需求的另一种解决方案:您可以使用自定义格式将值格式化为前导零。例如Style.Custom=“0000”;
0555
'0055