数字应格式化为 excel 中的数字,而不是文本 C#

Posted

技术标签:

【中文标题】数字应格式化为 excel 中的数字,而不是文本 C#【英文标题】:Numbers should be formatted as number in excel, not as text C# 【发布时间】:2015-06-29 19:09:43 【问题描述】:

谁能帮我在 Excel 中导出为数字而不是文本?另外,我想冻结第一行。这是我用来导出到 excel 的功能。另外,我希望行是备用颜色:

public FilePathResult ExportToExcel()
    log.Info("Action ExportToExcel for user " + User.Identity.GetUserName());
    List<string> dataTypes = new List<string>();
    NameValueCollection parameters = Request.Params;
    string query = QueryUtility.ConstructQueryForExcel(parameters);

    DataSet ds = new DataSet();
    DataTable dt = DaoUtilitySingleton.Instance.ExecuteQueryToGetDataTable(query);
    ds.Tables.Add(dt);

    log.Info("Query for export " + query);
    log.Info("Column names : " + parameters["columnNames"]);

    string guid = Guid.NewGuid().ToString();
    string fileName = guid;
    fileName += System.DateTime.Now.Ticks.ToString();
    fileName += ".xlsx";
    string destinationPath = Path.Combine(
        Server.MapPath("~/App_Data/ExcelExports"));
    if (!Directory.Exists(destinationPath))
    
        log.Info("Directory does not exist. Creating Directory first");
        Directory.CreateDirectory(destinationPath);
    
    destinationPath = Path.Combine(destinationPath, fileName);
    log.Info("Excel file will be saved as " + destinationPath);
    //currently , this function return data which is in text and not number
    try
    
        if (!(new ExcelUtility()).CreateExcelDocumentFromDataset(ds,
            destinationPath))
        
            log.Error("Excel file could not be created");
            return null;
        
    
    catch (Exception ex)
    
        GeneralUtility.LogException(log,
            "Excel file could not be created",
            ex);
        throw;
    
    log.Info("FIle created successfully");
    FilePathResult file = File(destinationPath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", Properties.Instance.FileForExcel);
    return file;
    //return the file

【问题讨论】:

【参考方案1】:

您可以使用 OpenXML 包装器来帮助自己。现在我正在使用SpreadLight。它处理与 excel 的大部分交互,您可以深入研究其高级功能的示例。

【讨论】:

以上是关于数字应格式化为 excel 中的数字,而不是文本 C#的主要内容,如果未能解决你的问题,请参考以下文章

由于数字格式为文本,将 Excel 文件读取到 Python 失败

将数字格式化为 s-s-rS 中的文本

在Excel中,将数字格式化为字符串的公式?

EXCEL - 如何将行格式化为在实际数字之前包含零

在 C# 中将 Excel 列(或单元格)格式化为文本?

在 Excel 2013 中将条形码的数字格式化为文本以提高可读性