【问题标题】:Change color in excel file更改excel文件的颜色
【发布时间】:2016-01-05 20:55:37
【问题描述】:

我将更改一些 Excel 单元格的颜色,并为此使用以下函数:

  private void FormatFile(Excel.Borders _borders)
        {
            _borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
            _borders.Color = ConsoleColor.Black;

            _range = _xlWorkSheet.get_Range("A1:AG100");
            _range.EntireColumn.AutoFit();
            _range.EntireRow.AutoFit();

            Excel.Range colorRange;
            colorRange = _xlWorkSheet.get_Range("y1", "ag100");
            colorRange.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
        }

它工作正常,但是当程序保存文件时,它会出现这个屏幕:

你知道如何改变它,我不会成为那个窗口吗?

我用这个函数保存文件:

   internal string SaveFile(string writePath)
    {
        FormatCells(_xlWorkSheet.Cells.Borders);
        string fileName = string.Format("{0}_{1}.xlsx","running_", DateTime.Now.ToString("yyyyMMdd_HHmmss"));
        _xlWorkBook.SaveAs(Path.Combine(writePath, fileName), Excel.XlFileFormat.xlWorkbookNormal, misValue,
           misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
        _xlWorkBook.Close(true, misValue, misValue);
        _xlApp.Quit();

        ReleaseObject(_xlWorkSheet);
        ReleaseObject(_xlWorkBook);
        ReleaseObject(_xlApp);
        return fileName;
    }

【问题讨论】:

  • 也许你可以在 2010 或 2013 等较新的 excel 中做到这一点
  • 不使用 Office 自动化,而是使用 Open XML SDK 或类似 EPPlus 的库直接创建实际的 xlsx 文件。这样您就不需要在用户的计算机上安装 Excel。
  • 至于您的问题,请使用xlOpenXMLWorkbook 而不是xlWorkbookNormal,这适用于xls 文件

标签: c# excel


【解决方案1】:

将文件保存为新格式 xlsx 而不是 xls。

这里有更详细的介绍:Exporting to .xlsx using Microsoft.Office.Interop.Excel SaveAs Error

要以编程方式保存为您需要使用的 XLSX 文件格式

Excel.XlFileFormat.xlOpenXMLWorkbook

作为文件格式。

【讨论】:

  • 我已经用保存功能更新了问题...是吗?
  • 啊,我错过了你原来的问题对不起,我以为你只是点击文件菜单中的保存。我没有尝试从函数中保存,所以我不确定。通过快速搜索,您似乎需要使用:Excel.XlFileFormat.xlOpenXMLWorkbook,我在这里找到:stackoverflow.com/questions/9769703/…
  • @invidicult - 如果您对该常数有任何疑问,则 xlOpenXMLWorkbook 的数值等价于 51。您也可以考虑从构造的文件名中删除 .XLSX。如果您正确保存工作簿,Excel 将自行添加 .xlsx。
  • 不客气,我已经更新了我的答案以包括现在的实际答案:)(让它更有用)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
相关资源
最近更新 更多