C# 关闭 Excel进程
来源:互联网 发布:mysql如何执行sqltxt 编辑:程序博客网 时间:2024/05/21 07:53
private bool SaveToExcel()
{
string FileName;
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.RestoreDirectory = true;
saveFileDialog.OverwritePrompt = true;
saveFileDialog.AutoUpgradeEnabled = true;
saveFileDialog.Filter = "Execl files (*.xlsx)|*.xlsx";
saveFileDialog.FilterIndex = 1;
saveFileDialog.Title = "保存先のファイルを選択してください";
Excel.Application excel = new Excel.Application();
Excel.Workbook book = excel.Workbooks.Add(Excel.XlSheetType.xlWorksheet);
//Excel.Sheets woSheets = book.Worksheets;
Excel.Worksheet newSheet = null;
Excel.Workbook ReBook = excel.Workbooks.Add(Excel.XlSheetType.xlWorksheet);
try
{
//データ書き込み
if (this.Keys.Count > 0)
{
FileName = String.Format("{0:yyyyMMdd-HHmmss}", DateTime.Now) + "-R1&R2.xls";
//シート追加
newSheet = (Excel.Worksheet)book.Sheets.Add(
Type.Missing, Type.Missing, this.R1sheetNo.Count + this.R2sheetNo.Count - 1, Type.Missing);
if (!setData(saveFileDialog, book, newSheet, this.allR1Data, this.allR2Data, this.Keys,
this.R1sheetNo, this.R2sheetNo, FileName,this.startLine,this.endLine))
{
return false;
}
}
//データ書き込み
if (this.ReKeys.Count > 0)
{
FileName = String.Format("{0:yyyyMMdd-HHmmss}", DateTime.Now) + "-R1&R2.xls";
//シート追加
newSheet = (Excel.Worksheet)ReBook.Sheets.Add(
Type.Missing, Type.Missing, this.ReR1sheetNo.Count + this.ReR2sheetNo.Count - 1, Type.Missing);
if (!setData(saveFileDialog,ReBook, newSheet, this.ReallR1Data, this.ReallR2Data, this.ReKeys,
this.ReR1sheetNo, this.ReR2sheetNo, FileName,this.reStartLine,this.ReEndLine))
{
return false;
}
}
book.Close(false);
excel.Quit();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
book.Close(false);
excel.Quit();
if (excel != null)
{
Kill(excel);
}
return false;
}
finally
{
if (excel != null)
{
Kill(excel);
}
}
}
/// <summary>
/// プロセス閉じる
/// </summary>
/// <param name="excelApp"></param>
[System.Runtime.InteropServices.DllImport("User32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
private void Kill(Excel.Application excelApp)
{
IntPtr t = new IntPtr(excelApp.Hwnd);
int k = 0; GetWindowThreadProcessId(t, out k);
System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k);
p.Kill();
}
- C# 关闭EXCEL进程
- C# Excel进程关闭
- C# 关闭 Excel进程
- c# 关闭excel进程
- C#关闭excel进程方法
- C#彻底关闭Excel进程excel.exe
- C#关闭当前excel进程方法
- C# 如何关闭,释放Excel进程
- C#操作完EXCEL如何砌底关闭进程
- C#关闭excel进程的最有效方法
- .Net 关闭 Excel 进程
- C#用Com组件解析Excel文件 然后删除Excel 并且彻底关闭Excel进程
- C#用Com组件解析Excel文件 然后删除Excel 并且彻底关闭Excel进程
- C# EXCEl 关闭
- C#关闭Excel
- C# 关闭某个进程
- c# 关闭进程
- c# 关闭指定进程
- 一、 代理(Proxy)模式
- GC与JS内存泄露
- Cryengine渲染引擎剖析(转)
- poj 2031 Building a Space Station
- 对话框验证
- C# 关闭 Excel进程
- 比较全面的gdb调试命令 .
- Android 成功 使用GPS获取当前地理位置(解决getLastKnownLocation 返回 null)
- Linux关机与重启命令详解
- 硬盘性能参数和IO(或stripe size)大小的选择
- 开源软件如何盈利?
- ssh secure shell client链接ubuntu服务端
- GDI+ 文字效果
- 关于存储LUN的大小和数量的问题