2016-03-30 29 views
1

Merhaba, Excel dosyaları ve C# ile çalışmayı deneyin. Şu anda xlsx dosyalarıyla çalışabilirim ve açabilirim. Ama bunu xlsm Dosyaları olarak değiştirdiğimde her zaman bir dosya bulmuyorum ki, bu dosya bulunamadı ve neden bir ipucum yok. İşte benim kodudur: BuradaC# okuma/yazma .xlsm Dosyaları

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using DocumentFormat.OpenXml.Packaging; 
using DocumentFormat.OpenXml.Spreadsheet; 
using Excel = Microsoft.Office.Interop.Excel; 
using Microsoft.Office.Interop; 
using System.Reflection; 
using System.Windows.Forms; 
using System.Diagnostics; 

namespace WorkWithExcel 
{ 
    class reportingController 
    { 

     public void createExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 

      Excel.Workbook oWB = oXL.Workbooks.Add(Missing.Value); 

      oWB.SaveAs(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      oWB.Close(true, Missing.Value, Missing.Value); 
     } 

     public void openExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 

      Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      //read Excel sheets 
      foreach (Excel.Worksheet ws in oWB.Sheets) 
      { 
       MessageBox.Show(ws.Name); 
      } 

      //save as separate copy 
      oWB.SaveAs(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout_neu.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      oWB.Close(true, Missing.Value, Missing.Value); 
     } 

     public void writeExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 
      Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 
      Excel.Worksheet oWS = oWB.Worksheets[1] as Excel.Worksheet; 

      //rename the Sheet name 
      oWS.Name = "Excel Sheet"; 

      for (int i = 1; i < 10; i++) 
      { 
       oWS.Cells[i, 1] = "Cell " + i.ToString(); 
      } 
      oWB.SaveAs(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      Process.Start(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm "); 
     } 

     public void readExcelFile() 
     { 
      Excel.Application oXL = new Excel.Application(); 

      Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

      Excel.Worksheet oWS = oWB.Worksheets[1] as Excel.Worksheet; 

      Excel.Range range; 

      range = oWS.UsedRange; 

      //read first row, first cell value 
      MessageBox.Show((string)(range.Cells[1, 1] as Excel.Range).Value2); 
     } 

    } 
} 

Ve exeption:

An exception of type 'System.Runtime.InteropServices.COMException' occurred in WorkWithExcel.exe . 

Additional information: ' C : \ Users \ AAN \ Documents \ Visual Studio 2015 \ Projects \ Work With Excel \ Work With Excel \ bin \ DebugPROJEKTSTATUS_GESAMT_neues_Layout.xlsm ' was not found. Check the spelling of the filename , and verify that the file location is correct . 

Ama dosya var.

Bir .xlsx dosyası ile çalışır, ancak bir xlsm ile değil. Yani herhangi bir yardım harika olurdu. Bu yüzden google ve bazı bloglar denedim ama hiçbir şey benim için çalıştı. Mabey orada bir şey yok ....

Zaman ayırdığınız için teşekkürler ve ingilizce için özür dilerim.

Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "PROJEKTSTATUS_GESAMT_neues_Layout.xlsm"... 

:

+0

kullanın. – Sybren

+1

Sadece Application.StartupPath ve dosya adı arasında bir \ eksik olan kadar basit değil mi? Özel durumdaki yolun eksik olduğu anlaşılıyor. – DoctorMick

+0

@DoctorMick well thx bu fark etmedim bir şey ..... ve işe yarıyor .... – opelhatza

cevap

0

Yolunuz

"C : \ Users \ AAN \ Documents \ Visual Studio 2015 \ Projects \ Work With Excel \ Work With Excel \ bin \ Debug \ PROJEKTSTATUS_GESAMT_neues_Layout.xlsm" 

değil

"C : \ Users \ AAN \ Documents \ Visual Studio 2015 \ Projects \ Work With Excel \ Work With Excel \ bin \ DebugPROJEKTSTATUS_GESAMT_neues_Layout.xlsm" 

Debug

Fix sonra bu satırı \ ekle olması gerekiyor Buna:

Excel.Workbook oWB = oXL.Workbooks.Open(Application.StartupPath + "\\PROJEKTSTATUS_GESAMT_neues_Layout.xlsm"... 

Hatta, yazı tam istisna mesaj ekleyiniz sabit bir değer

+0

iyi fark etmedi ama yardım için teşekkürler – opelhatza

İlgili konular