C# 關閉 Excel程序
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程序
private bool SaveToExcel() { string FileName; SaveFileDialog saveFileDialog = new SaveFileDialog();
c# 關閉excel程序
excel的application app,直接使用app.Quit();app=null;有時候不能完全關閉excel程序,而通過下面的Kill方法即Kill(app);則可以讓正在處理的excel從程序中消失。 引用名稱空間using System.Runtime.In
VB之操作excel後不能關閉excel程序的原因及解決方法
一、問題: 使用如下程式碼開啟、取值及關閉excel: Public Function ImportFromExcel(excelFile As String) As Long Dim xlApp As Excel.Application Dim xlBook As Ex
以下是一個完整的關閉excel程序的例子
,我剛用過,沒有問題了。Excel.Application myExcel;Excel._Workbook myWB;Excel._Worksheet myWS = null;Excel.Range myRrange = null;try{ myExcel = new
C#匯出Excel後關閉程序EXCEL.EXE
在C#中使用Microsoft.Office.Interop.Execl 匯出excel 表格時,將以下兩個屬性畝後,在導完後, Excel.exe 程序無法關閉。 // excel app 是否可見app.Visible = false; // app
C#匯出Excel後關閉程序(EXCEL.EXE)釋放資源的解決方案
#region Kill Special Excel Process [System.Runtime.InteropServices.DllImport("user32.dll", SetLastError = true)] st
C#啟動外部程序以及等待外部程序關閉的幾種方法
string C# main 無限 完成 nbsp text enable geb 1. 啟動外部程序,不等待其退出。 2. 啟動外部程序,等待其退出。 3. 啟動外部程序,無限等待其退出。 4. 啟動外部程序,通過事件監視其退出。 // using Sy
C#如何關閉指定程序
public static void KillProcess(string strProcessesByName)//關閉執行緒 { foreach (Process p in Process.GetProcesses())//GetProcessesByNam
C# 匯出excel後,刪除該檔案提示 正由另一程序使用,因此該程序無法訪問此檔案
原始碼 path = Server.MapPath("~/TemporaryFile/"); if (false == System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(p
關於C#關閉窗體後,依舊有後臺程序在執行的解決方法
C#中WinForm程式退出方法技巧總結 一、關閉窗體 在c#中退出WinForm程式包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environment.Exit(0); 等他們各自的方法不一樣,
vb.net 開啟EXCEL ,關閉程式後,EXCEL程序仍然存在的問題
寫在每段程式的末尾: ReleaseExcel(Excel) GC.Collect() 另有單獨一個可呼叫過程: Sub ReleaseExcel(ByRef o As Object) System.Runtime.I
c++ 遍歷後臺程序,並關閉相關程序
關閉後臺QQint CMainFrame::AutoSsrStop() //*遍歷後臺程序,關閉相關程序。{char c[]={"connect.exe"};HANDLE handle; HANDLE handle1;ha
C#呼叫COM元件後退出Excel程序
我在使用WinForm程式呼叫Excel的COM元件的時候,也遇到了Excel程序退出的問題。這個問題很多人已經遇到,而且解決辦法也吵得很熱。 現在總結一下: 第一種方法是呼叫相關的元件釋放方法,然後用程式碼呼叫垃圾收集器進行處理。這種方法比較正常,也就是說,是通過正規渠道
C#關閉winform後程序仍在除錯
針對程式仍在除錯這個問題,因為程式中加入的執行緒,雖然執行緒的Isbackgroud=true,但是關閉介面後,執行緒仍然沒有關掉 解決方法:在closing事件中加入:Environment.Exit(Environment.ExitCode); 模態對話方塊的再次呼叫
c#操作Excel
sum nbsp span eof esp ted ++ pen bsp using System; using System.Collections.Generic; using System.Text; using System.Data.OleDb; using S
NPOI之C#下載Excel
bold setfont top 步驟 value 課程 erl adl max Java中這個類庫叫POI,C#中叫NPOI,很多從Java一直到.Net平臺的類庫為了區別大部分都是在前面加個N,比如Hibernate和NHibernate。 npoi下載地址 一、使
Macbook怎麽強制關閉後臺程序?Macbook強制關閉後臺程序的方法
killall 紅色 -i www 關於 light cbo 圖標 終端 有時候我們的Macbook電腦運行某個程序卡在那裏耗了很長時間,程序本身有可能提供了取消按鈕,點了也沒有反應,這時候我們就很想強制關閉它了,那麽Macbook怎麽強制關閉後臺運行的程序呢?下面完美小編
查找網上關於C++讀取Excel表格資料後的心得
cst 批評 目錄 work 各路 網上 sse rate books 使用微軟提供的自帶COM組件來讀Excel 一、讀取Excel文件COM類的相關環境的搭建: 1、首先新建一個MFC對話框工程,可命名為ReadWriteExcel 2、在添加類選項中, 選擇MFC
C++ 入門小程序
color name hello namespace world ios urn use pan 1.控制臺輸出 hello world #include "stdafx.h" #include<iostream> using namespace std;
C++ 泛型程序設計與STL模板庫(1)---泛型程序設計簡介及STL簡介與結構
urn 向上 隊列 是把 鏈表 需要 input stack 特定 泛型程序設計的基本概念 編寫不依賴於具體數據類型的程序 將算法從特定的數據結構中抽象出來,成為通用的 C++的模板為泛型程序設計奠定了關鍵的基礎 術語:概念 用來界定具備一定功能的數據類型。例如: