我有兩個不同的Excel文件,並對兩者做了一些更改。當我另存...時,系統會提示每個文件確認現有文件以及覆蓋該文件的選項。我意識到我可以用Save()命令完全避免這種情況,但我試圖理解爲什麼會出現兩種不同的外觀覆蓋提示?爲什麼我會得到兩個不同的SaveAs覆蓋提示?
一切正常保存,沒有發生錯誤。
在我的C#代碼中,我使用的是MS Excel 14.0版本的對象庫。 (Excel 2010)
我使用的IDE是MS Visual Studio 2015社區。
操作系統是Win 7 x64。硬件風味AMD。
謝謝你的時間。
另存爲對話框1:
另存爲對話框2
我用來測試這個代碼...
using System;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel;
namespace SO_Question
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
EditSaveExcelFiles();
}
public static void EditSaveExcelFiles()
{
object misValue = System.Reflection.Missing.Value;
string file1 = @"C:\Users\John\Documents\New Folder\MyExcel.xlsx";
string file2 = @"C:\Users\John\Documents\New Folder\MyExcel2.xlsx";
Excel.Application ExcelApp = new Excel.Application();
Workbook workBook1 = ExcelApp.Workbooks.Open(file1, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
Workbook workBook2 = ExcelApp.Workbooks.Open(file2, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
Worksheet workSheet1 = (Worksheet)workBook1.Worksheets.get_Item("Sheet1");
Worksheet workSheet2 = (Worksheet)workBook2.Worksheets.get_Item("Sheet1");
// do some stuff
workSheet1.Cells[1, 1] = "Grazer14";
workSheet2.Cells[1, 1] = "Grazer24";
// Different overwrite dialogs?
try
{
workBook1.SaveAs(file1, Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
workBook2.SaveAs(file2, Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
}
catch (Exception e)
{
//when user clicks "No" or "Cancel"
//MessageBox.Show("No or Cancel: " + e.StackTrace);
}
workBook2.Close(true, misValue, misValue);
workBook1.Close(true, misValue, misValue);
ExcelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook1);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook2);
System.Runtime.InteropServices.Marshal.ReleaseComObject(ExcelApp);
}
}
}
怎麼會是第一個截圖路徑缺少「新建文件夾」?你確定使用你發佈的代碼截圖嗎? – dlatikay
唯一的區別是您保存的文件格式 - 它必須是導致差異的文件格式。如果您以交互方式嘗試不同的SaveAs選項,您會得到什麼? – ChrisF
@dlatikay是的,這是一個較早的圖片。現在更新謝謝。 – JohnG