Excel中Sheet复制
2009-07-30 16:40
447 查看
public static bool MergeSheet(string fileName, List<string> sheetViewNameList,ref string message)
{
if (sheetViewNameList!=null&&sheetViewNameList.Count>0)
{
ApplicationClass appcls = new ApplicationClass();
Workbook wkb = null;
object missing = System.Reflection.Missing.Value;
appcls.DisplayAlerts = false;
appcls.Visible = false;
try
{
//新建一工作簿
wkb = appcls.Workbooks.Add(XlSheetType.xlWorksheet);
bool canDelete = true;
foreach (string file in sheetViewNameList)
{
Workbook wkbFrom = appcls.Workbooks.Open(file, missing, missing,
missing, missing, missing, missing,
missing, missing, missing, missing,
missing, missing);
Worksheet wst = null;
for (int i = 1; i <= wkbFrom.Sheets.Count; i++)
{
wst = null;
//取得sheet
wst = (Excel.Worksheet)(wkbFrom.Sheets.get_Item(i));
//将sheet复制到工作簿中
wst.Copy(missing, wkb.Worksheets[wkb.Worksheets.Count]);
if (canDelete)
{
//将第一个sheet即sheet1删除
((Worksheet)wkb.Worksheets.get_Item(1)).Delete();
canDelete = false;
}
}
wst = null;
wkbFrom.Close(missing, missing, missing);
wkbFrom = null;
}
//选择第一个Sheet
((Worksheet)wkb.Worksheets.get_Item(1)).Select(missing);
//保存工作簿
wkb.SaveAs(fileName, XlFileFormat.xlWorkbookNormal, missing, missing, missing, missing,
Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing);
return true;
}
catch (Exception ex)
{
message = ex.Message;
foreach (string filefrom in sheetViewNameList)
{
//源文件删除
FileInfo fileInfo = new FileInfo(filefrom);
if (fileInfo.Exists)
{
//只读属性先设置成普通属性再删除
fileInfo.Attributes = FileAttributes.Normal;
fileInfo.Delete();
}
}
return false;
}
finally
{
if (appcls != null)
{
appcls.Quit();
Marshal.FinalReleaseComObject((Object)appcls);
}
appcls = null;
wkb = null;
}
}
else
{
return false;
}
}
{
if (sheetViewNameList!=null&&sheetViewNameList.Count>0)
{
ApplicationClass appcls = new ApplicationClass();
Workbook wkb = null;
object missing = System.Reflection.Missing.Value;
appcls.DisplayAlerts = false;
appcls.Visible = false;
try
{
//新建一工作簿
wkb = appcls.Workbooks.Add(XlSheetType.xlWorksheet);
bool canDelete = true;
foreach (string file in sheetViewNameList)
{
Workbook wkbFrom = appcls.Workbooks.Open(file, missing, missing,
missing, missing, missing, missing,
missing, missing, missing, missing,
missing, missing);
Worksheet wst = null;
for (int i = 1; i <= wkbFrom.Sheets.Count; i++)
{
wst = null;
//取得sheet
wst = (Excel.Worksheet)(wkbFrom.Sheets.get_Item(i));
//将sheet复制到工作簿中
wst.Copy(missing, wkb.Worksheets[wkb.Worksheets.Count]);
if (canDelete)
{
//将第一个sheet即sheet1删除
((Worksheet)wkb.Worksheets.get_Item(1)).Delete();
canDelete = false;
}
}
wst = null;
wkbFrom.Close(missing, missing, missing);
wkbFrom = null;
}
//选择第一个Sheet
((Worksheet)wkb.Worksheets.get_Item(1)).Select(missing);
//保存工作簿
wkb.SaveAs(fileName, XlFileFormat.xlWorkbookNormal, missing, missing, missing, missing,
Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing);
return true;
}
catch (Exception ex)
{
message = ex.Message;
foreach (string filefrom in sheetViewNameList)
{
//源文件删除
FileInfo fileInfo = new FileInfo(filefrom);
if (fileInfo.Exists)
{
//只读属性先设置成普通属性再删除
fileInfo.Attributes = FileAttributes.Normal;
fileInfo.Delete();
}
}
return false;
}
finally
{
if (appcls != null)
{
appcls.Quit();
Marshal.FinalReleaseComObject((Object)appcls);
}
appcls = null;
wkb = null;
}
}
else
{
return false;
}
}
相关文章推荐
- python实现跨excel的工作表sheet之间的复制方法
- 关于C#操作Excel,复制Sheet的记录
- VC 操作Excel sheet复制、重命名
- excel sheet的 某列(m*n行) 快速复制到 m行n列区域
- excel sheet中数据的快速复制
- poi操作excel,复制sheet,复制行,复制单元格
- C#处理多个Excel合并,复制Sheet
- 常用代码备份--OLE操作Excel之sheet复制
- python excel sheet复制
- excel sheet的 某列(m*n行) 快速复制到 m行n列区域
- excel sheet中数据的快速复制
- delphi 操作excel复制sheet
- QT QAxObject 复制Excel Sheet方法
- EXCEL 移动或复制sheet到另一个工作簿
- java poi 复制excel中的sheet
- poi操作excel,复制sheet,复制行,复制单元格 .
- C#处理多个Excel合并,复制Sheet
- C# 操作Excel ---复制Excel的sheet
- python实现跨excel的工作表sheet之间的复制
- PHPExcel sheet复制