據我所知,有沒有錯誤在下面的代碼可言:C#無法保存文本數據到Excel文件
private Excel.Application Xls;
private Excel.Workbooks XlsB;
private Excel.Workbook WB;
private Excel.Worksheet WS;
private Excel.Sheets WBs;
private void btnPrint_Click(object sender, EventArgs e)
{
try
{
Xls = new Excel.Application();
XlsB = Xls.Workbooks;
WB = XlsB.Open(lblPath.Text, 0, false, 5, "", "", true,
XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
Sheets WBs = WB.Worksheets;
Worksheet WS = WBs.get_Item(1);
WS.Cells[1, 1] = txtTATW.Text;
WB.Save();
}
catch (Exception ex)
{
MessageBox.Show("Write Excel: " + ex.Message);
}
finally
{
GC.Collect();
GC.WaitForPendingFinalizers();
releaseObject(WS);
releaseObject(WBs);
releaseObject(WB);
releaseObject(XlsB);
WB.Close(true, lblPath.Text, misValue);
Xls.Quit();
releaseObject(Xls);
}
}
最後釋放方法:
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Unable to release the Object " + ex.ToString());
}
}
一些數據從不同的窗體中傳出,這在這裏是不可見的,但是所有重要的東西都應該列出來!
它基本上只是將數據從文本框拉到特定的單元格中。現在,我只用一次單元測試它。 希望第二雙眼睛能幫助我找到解決方案。
當你說重要的一切應該列出,是,這不是你使用的完整代碼? –
@SimonPrice對,我的意思是代碼的其餘部分屬於其他不必要的東西。 – Aroueterra
好的,當你調試這個時會發生什麼? –