C# 使用C将多个工作簿合并到一个(新)主工作簿中#
我需要一些关于将多个工作簿集成到单个主工作簿的帮助。我正在尝试使用以下代码。如果有人能帮我解决以下问题,我将不胜感激:C# 使用C将多个工作簿合并到一个(新)主工作簿中#,c#,excel,c#-4.0,c#-3.0,C#,Excel,C# 4.0,C# 3.0,我需要一些关于将多个工作簿集成到单个主工作簿的帮助。我正在尝试使用以下代码。如果有人能帮我解决以下问题,我将不胜感激: 保存包含所有工作表的最终(主)工作簿 复制到主工作簿时,不同工作簿中的工作表不应格式松散 代码: 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用Excel=Microsoft.Office.Interop.Excel; 使用Microsoft.Office.Interop.Excel; 使用System
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用Excel=Microsoft.Office.Interop.Excel;
使用Microsoft.Office.Interop.Excel;
使用System.IO;
命名空间集成宏
{
班级计划
{
静态void Main(字符串[]参数)
{
Excel.Application app=新建Excel.Application();
app.Visible=true;
应用程序工作簿。添加(“”);
app.Workbooks.Add(@“C:\Users\ssehgal\Documents\Excel Files For Macro\WorkBook1.xls”);
app.Workbooks.Add(@“C:\Users\ssehgal\Documents\Excel Files For Macro\WorkBook2.xls”);
对于(inti=2;ivar-app=new-Application(){Visible=true};
var master=app.Workbooks.Add();
//对需要合并的每个工作簿重复此操作。。。
应用程序。工作簿。添加(\u路径\u到\u工作簿\u)
.Worksheets.Cast()
.ToList()//Move()将修改枚举的源,因此需要创建临时副本
.ForEach(x=>x.Move(主表[1]);
非常感谢..代码有效..但是,我无法保存标题颜色的格式。是否也可以保存标题颜色?我无法复制。在Excel2010上,列标题和页面标题都复制得很好。您能提供一个示例文件来重现此问题吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
using System.IO;
namespace IntegrationMacro
{
class Program
{
static void Main(string[] args)
{
Excel.Application app = new Excel.Application();
app.Visible = true;
app.Workbooks.Add("");
app.Workbooks.Add(@"C:\Users\ssehgal\Documents\Excel-Files-For-Macro\WorkBook1.xls");
app.Workbooks.Add(@"C:\Users\ssehgal\Documents\Excel-Files-For-Macro\WorkBook2.xls");
for (int i = 2; i <= app.Workbooks.Count; i++)
{
for (int j = 1; j <= app.Workbooks[i].Worksheets.Count; j++)
{
Excel.Worksheet ws = (Excel.Worksheet)app.Workbooks[i].Worksheets[j];
ws.Copy(app.Workbooks[1].Worksheets[1]);
}
}
}
}
}
var app = new Application() { Visible = true };
var master = app.Workbooks.Add();
// repeat this for each workbook you need to combine...
app.Workbooks.Add(__PATH_TO_THE_WORKBOOK__)
.Worksheets.Cast<Worksheet>()
.ToList() // Move() will modify the source of enumeration, so we need to make a temp copy
.ForEach(x => x.Move(master.Sheets[1]));