Excel.Workbook.SaveAs (…) с одним и тем же именем файла

Я работаю с файлом xls. Как я могу сохранить его (если существует) с тем же именем файла + "(копия 1)", что и рабочий стол Windows.

метод saveCommande (…)

if(!Directory.Exists(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "EcoEtech_Commande_Fournisseur")) { Directory.CreateDirectory(System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\EcoEtech_Commande_Fournisseur"); } xlWorkBook.SaveAs("EcoEtech_Commande_Fournisseur\\" + path, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, true, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); path = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\EcoEtech_Commande_Fournisseur\\" + path; xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); this.ReleaseComObject(xlApp,xlWorkBook); //sauvergarde dans la base de données _newAchatCommande.path = path; this._fileName = path; contexte.AddToAchatCommande(_newAchatCommande); contexte.SaveChanges(); 

благодаря

попробуйте использовать метод Existing объекта File:

  if (!System.IO.File.Exists(@"C:\test2.xls")) { xlWorkBook.SaveAs(@"c:\test2.xls"); } else { xlWorkBook.SaveAs(@"c:\test2(Copy).xls"); } 

Или, альтернативно, вы можете перезаписать свой файл excel

  Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); excel.DisplayAlerts = false; excelSheePrint.SaveAs(filename, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing); 

Примечание. Он будет перезаписывать существующее excel (если есть) без запроса пользователя.

  DataTable dt= dtData; using (XLWorkbook wb = new XLWorkbook()) { //Range(int firstCellRow,int firstCellColumn,int lastCellRow,int lastCellColumn) int CCount = dt.Columns.Count; int RCount = dt.Rows.Count; var ws = wb.Worksheets.Add("Report"); //add worksheet to workbook ws.Row(1).Cell(1).RichText.AddText(ReportName); ws.Range(1, 1, 1, CCount).Merge(); ws.Range(1, 1, 1, CCount).Style.Font.Bold = true;//Range(int firstCellRow,int firstCellColumn,int lastCellRow,int lastCellColumn) ws.Range(1, 1, 1, CCount).Style.Font.FontSize = 16; ws.Range(1, 1, 1, CCount).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; ws.Range(1, 1, 1, CCount).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center; //ws.Range("A1:Z1").Style.Font.Bold = true; ws.Row(2).Cell(1).InsertTable(dt); ws.Range("A2:Z2").Style.Font.Bold = true; ws.Range(2, 1, RCount + 2, CCount).Style.Border.OutsideBorder = XLBorderStyleValues.Medium; wb.SaveAs(FolderPath + filename + ".xlsx"); ws.Dispose(); } 

оно работает! благодаря

  private void SaveNewCommande(YetiBddEntities contexte, Excel.Application xlApp, Excel.Workbook xlWorkBook, string path, object misValue) { string tmpPath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\EET_Commande_Fournisseur"; if (!Directory.Exists(tmpPath)) { Directory.CreateDirectory(tmpPath); } foreach (string file in Directory.GetFiles(tmpPath)) { if ((path+".xls").Equals(file.Substring(tmpPath.Length+1))) count++; } if (count>0) xlWorkBook.SaveAs(string.Format("EET_Commande_Fournisseur\\{0}_({1}).xls", path, count), Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); else xlWorkBook.SaveAs(string.Format("EET_Commande_Fournisseur\\{0}.xls", path) + path, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); path = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\EET_Commande_Fournisseur\\" + path+".xls"; xlWorkBook.Close(true, misValue, misValue); xlApp.Quit(); this.ReleaseComObject(xlApp,xlWorkBook); //sauvergarde dans la base de données _newAchatCommande.path = path; this._fileName = path; contexte.AddToAchatCommande(_newAchatCommande); contexte.SaveChanges(); } 
  • Win32: Python, чтобы получить все имена столбцов из Excel
  • Python: доступ к встроенному OLE из документа Office / Excel без буфера обмена
  • Python - чистый способ обертывания отдельных операторов в попытке, кроме блока
  • Какой метод итерации, считывающий значения Excel, будет более результативным?
  • Вызов оболочки веб-службы .NET COM из Excel
  • Самый быстрый способ записи ячеек в Excel с помощью Office Interop?
  • Чтение C # в метке времени в ячейке excel и проверка наличия ее не более # дня
  • Прочитайте ячейку Excel и установите цвет строки
  • Ошибка 1001 Произошла ошибка при отправке команды в приложение
  • C # COM Исключение: 0x80010108 (RPC_E_DISCONNECTED))
  • C # Excel Late Binding set Cellvalues ​​с базой данных
  • Давайте будем гением компьютера.