using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Diagnostics;
using Microsoft.Office.Interop.Excel;
namespace Report
{
[Guid("7F77CA9F-41DC-4161-AC94-7349FDCC5C28")]
public interface Ireport
{
[DispId(1)]
void ReportrstjToHtm();
[DispId(2)]
void ReportrshzToHtm();
[DispId(3)]
void ReportxcfxToHtm();
}
[Guid("47C976E0-C208-4740-AC42-41212D3C34F0"),
InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface Ereport
{
}
[Guid("3948822C-9D6A-454e-820E-D5119898E900"),
ClassInterface(ClassInterfaceType.None),
ComSourceInterfaces(typeof(Ereport))]
public class Report : Ireport
{
public Report()
{
}
public void ReportrstjToHtm()
{
DateTime startTime = DateTime.Now;
Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.ApplicationClass();
excelapp.Application.DisplayAlerts = false;
excelapp.Application.Workbooks.Open("D:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\js\\rstjbb.xlsx",
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value
);
excelapp.Application.ActiveWorkbook.SaveAs("D:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\js\\rstjbb.aspx", Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml, Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value);
excelapp.Application.Workbooks.Close();
excelapp.Application.Quit();
excelapp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelapp);
DateTime endTime = DateTime.Now;
killProcess(startTime, endTime, "EXCEL");
GC.Collect(); //回收垃圾
}
public void ReportrshzToHtm()
{
DateTime startTime = DateTime.Now;
Microsoft.Office.Interop.Excel.Application excelapp1 = new Microsoft.Office.Interop.Excel.ApplicationClass();
excelapp1.Application.DisplayAlerts = false;
excelapp1.Application.Workbooks.Open("D:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\js\\rshzbb.xlsx",
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value
);
excelapp1.Application.ActiveWorkbook.SaveAs("D:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\js\\rshzbb.aspx", Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml, Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value);
excelapp1.Application.Workbooks.Close();
excelapp1.Application.Quit();
excelapp1.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelapp1);
DateTime endTime = DateTime.Now;
killProcess(startTime, endTime, "EXCEL");
GC.Collect(); //回收垃圾
}
public void ReportxcfxToHtm()
{
DateTime startTime = DateTime.Now;
Microsoft.Office.Interop.Excel.Application excelapp2 = new Microsoft.Office.Interop.Excel.ApplicationClass();
excelapp2.Application.DisplayAlerts = false;
excelapp2.Application.Workbooks.Open("D:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\js\\xcfxbb.xlsx",
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value
);
excelapp2.Application.ActiveWorkbook.SaveAs("D:\\Program Files\\Kingdee\\K3ERP\\KDHR\\SITEFILE\\WEBUI\\js\\xcfxbb.aspx", Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml, Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value,
Missing.Value);
excelapp2.Application.Workbooks.Close();
excelapp2.Application.Quit();
excelapp2.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelapp2);
DateTime endTime = DateTime.Now;
killProcess(startTime, endTime, "EXCEL");
GC.Collect(); //回收垃圾
}
protected void killProcess(DateTime start, DateTime end, string ProcessName)
{
Process[] myProcesses;
DateTime ProStartTime;
myProcesses = Process.GetProcessesByName(ProcessName);
foreach (Process myProcess in myProcesses)
{
ProStartTime = myProcess.StartTime;
if (start <= ProStartTime && ProStartTime <= end)
{
myProcess.Kill();
}
}
}
}
}