合并excel工作表(从SSRS导出)时的颜色更改

时间:2011-09-16 15:33:05

标签: c# .net colors ssrs-2008 export-to-excel

我遇到了一个奇怪的问题,我在SSRS 2008解决方案中开发了3个报告,并将它们导出到excel工作表中,这些工作表使用预期的颜色(绿色,红色,橙色)导出。当我尝试通过复制所有工作表将它们合并到一个Excel工作表中时,我发现颜色正在变化,我不得不手动更改它们。我尝试使用C#代码模仿相同的合并,这也不是果实。

手动更改颜色非常烦人,因为我总共有64份报告。请建议我克服这个问题。

提前致谢!!

1 个答案:

答案 0 :(得分:2)

编辑4:

我制作了这个控制台应用程序来模仿你在做什么。

namespace ExcelConsole
{
using System.IO;

using ExcelCombine;

class Program
{
    public static string Thepath { get; set; }
    public static string TheFirstFile { get; set; }
    public string[] files = null;

    static void Main(string[] args)
    {
        Thepath = @"C:\Users\J\Desktop\TestingFolder\";
        string[] files = Directory.GetFiles(Thepath);
        TheFirstFile = files[0];
        ExcelEngine.CombineWorkBooks(Thepath, "*.xls", Thepath, false, TheFirstFile);
    }
}
}

我使用了你应该已经拥有的课程。在上面引用的文件夹“TestingFolder”中,我放置了模板和带有公式的副本。运行应用程序后,它就可以很好地组合它们并保持格式化/公式。

编辑5:

我想我毕竟可能已经找到了一些东西。

在我给你的excel代码中,更改此内容:

 sheetToCopy.Copy(defaultWorksheet)

对此:

sheetToCopy.Range["A1", "AC60"].Copy();
newBook.Activate();
newBook.Sheets.Add(Type.Missing,defaultWorksheet);
newBook.ActiveSheet.Range["A1", "Z50"].Select();

newBook.ActiveSheet.PasteSpecial(XlPasteType.xlPasteAllUsingSourceTheme);

这对我做的是保持着色并复制数据,但无论我使用哪种粘贴选项,列宽都没有复制。

希望这有助于一点点。