我遇到了一个奇怪的问题,我在SSRS 2008解决方案中开发了3个报告,并将它们导出到excel工作表中,这些工作表使用预期的颜色(绿色,红色,橙色)导出。当我尝试通过复制所有工作表将它们合并到一个Excel工作表中时,我发现颜色正在变化,我不得不手动更改它们。我尝试使用C#代码模仿相同的合并,这也不是果实。
手动更改颜色非常烦人,因为我总共有64份报告。请建议我克服这个问题。
提前致谢!!
答案 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);
这对我做的是保持着色并复制数据,但无论我使用哪种粘贴选项,列宽都没有复制。
希望这有助于一点点。