Редактировать 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);
Для меня это означало сохранение окраски и копирование данных, но независимо от того, какиеОпция вставки, которую я использовал, ширины столбцов не копировалась.
Надеюсь, это поможет хоть немного.