我遇到了一个奇怪的问题,我在SSRS 2008解决方案中开发了3个报表,并将它们导出到excel表格中,这些表格用颜色(绿色,红色,橙色)是故意的。当我尝试通过复制所有表单将它们合并到一个Excel表格中时,我发现颜色变化很奇怪,我不得不手动更改它们。我尝试使用C#代码模仿相同的合并,这也是不太成功的。当excel表格(从SSRS导出)颜色发生变化时
手动更改颜色真的很麻烦,因为我总共有64个报告。请建议我解决这个问题。
在此先感谢!
我遇到了一个奇怪的问题,我在SSRS 2008解决方案中开发了3个报表,并将它们导出到excel表格中,这些表格用颜色(绿色,红色,橙色)是故意的。当我尝试通过复制所有表单将它们合并到一个Excel表格中时,我发现颜色变化很奇怪,我不得不手动更改它们。我尝试使用C#代码模仿相同的合并,这也是不太成功的。当excel表格(从SSRS导出)颜色发生变化时
手动更改颜色真的很麻烦,因为我总共有64个报告。请建议我解决这个问题。
在此先感谢!
编辑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:
我想我可能已经结束了一些事情。
在上出类拔萃,我给你的代码,更改此:
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);
这是什么为我做的是保持色彩和复制数据,但无论我使用哪个粘贴选项,列宽没有复制。
希望这有助于一点点。
添加xlApp.CutCopyMode = XlCutCopyMode.xlCopy;创建行后:xlApp = new Application(); 。我经历了几个论坛,这可能会帮助我们。 – KreepN
这3个报告存在于3个独立的excel文件中是否正确? – KreepN
是的。所有3个报告存在于3个独立的excel文件中,我需要将它们合并并制作一个统一的excel文件。 – Praveen
给我几个,我正在为我们开发一个应用程序,我也用它来做这件事,并且从来没有真正想过让我的代码能够做到你想要的功能,并将它们放到单独的应用程序/代码库中。我会在这里更新你的。 – KreepN