2012-07-12 96 views
0

我已經編寫了打開excel文件的代碼。我有興趣將Excel文件保存在臨時文件夾中,一旦用戶指明要打開哪個文件。這是爲了我以後的應用程序來閱讀excel並對其進行任何操作。 這裏是我下面的代碼:在c的臨時文件夾中保存excel文件#

private void btnbrowseFile_Click(object sender, EventArgs e) 
      { 
      openFileDialog1.Title = "Select an Excel file"; 
      openFileDialog1.InitialDirectory = @"c:\"; 
      openFileDialog1.Filter = "Excel 97-2007 WorkBook|*.xls|Excel WorkBook|*.xlsx|All Excel Files|*.xls;*.xlsm;*.xlsx"; 
      openFileDialog1.FilterIndex = 3; 
      openFileDialog1.RestoreDirectory = true; 

      if (openFileDialog1.ShowDialog() == DialogResult.OK) 
      { 
       txtFilename.Text = openFileDialog1.FileName; 
      } 

     } 
+0

你怎麼然後打開該文件?您必須具有對Excel.Application的引用,然後才能調用Application.Workbooks.Save方法並將路徑傳遞到要將文件保存到的位置。 OTH,Excel自動保存工作簿的備份副本。 – martin 2012-07-12 08:23:29

+0

@martin我想讓用戶選擇一個我必須保存在臨時文件夾中的excel文件。從臨時文件夾中,我可以通過查詢並顯示或輸入數據到數據庫來操作文件。 – Sithelo 2012-07-12 10:35:21

回答

1

你可以做這樣的事情

if (openFileDialog1.ShowDialog() == DialogResult.OK) 
{ 
    File.Copy(openFileDialog1.FileName, Path.Combine(Path.GetTempPath(), Path.GetFileName(openFileDialog1.FileName)), true); 
} 
+0

我注意到字符串fileName來自臨時文件名。我想從用戶選擇的文件名。 – Sithelo 2012-07-12 09:23:26

+0

@Sithelo好吧,我編輯了我的答案,所以它使用原始文件名。 – 2012-07-12 09:25:35

+0

哦,我看到了,但是它可能會將其複製到相同的目錄或路徑,因爲它給了我一個文件存在的錯誤。 – Sithelo 2012-07-12 09:30:31

2

你可以找到與

Path.GetTempPath(); 

用戶臨時文件夾,並File.Copy();

工作,該文件複製它在那裏,當你的魔法完成,做你想要的。

+0

我意識到我只是C#中的新手。我添加了字符串tempfolder = Path.GetTempPath();和File.Copy(sourceFileName,「optic.xls」,true); ,但我的文件甚至沒有保存。我還沒有試圖將它複製到我的臨時文件中。正在測試。 – Sithelo 2012-07-12 09:14:34