以下は、ワークシートをコピーして新しいファイルとして保存するコードです。実際には、環境が Office 2003、Windows Server 2003 のローカルにマクロなしで保存されます。
しかし、サーバーではマクロで保存しますが、これは望ましくありません環境はOffice 2003、Windows Server 2008です
C#:
try
{
wBook = xCel.Workbooks.Open(ExcelPath);
wSheet = (Excel.Worksheet)wBook.Worksheets.get_Item(1);
wSheet.Copy(Type.Missing, Type.Missing);
wSheet = (Excel.Worksheet)wBook.Sheets[1];
wSheet.SaveAs(ExcelCopyPath);
}
catch {}
finally
{
if (wBook != null)
{
wBook.Close();
wSheet = null;
wBook = null;
Thread.Sleep(500);
}
if (Excel.ProcessID > 0)
{
Process pxCel = Process.GetProcessById(Excel.ProcessID);
pxCel.Kill();
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
try { Marshal.FinalReleaseComObject(wSheet);}
catch {}
try { Marshal.FinalReleaseComObject(wBook);}
catch {}
}
私の問題を確認してください...そしていくつかの答えを提案してください。ありがとう