2013-02-16 89 views
0

我使用javascriptactiveX来保存和编辑excel文档的数据。到目前为止,一切正常但是现在我想写一个新版本,在那里我可以更新一个特定的单元格,并保持其他单元格的位置。使用excel保存而不是saveAs activeX

这里是我使用的代码:

function Write() { 
    var Excel, Book; // Declare the variables 
    Excel = new ActiveXObject("Excel.Application"); // Create the Excel application object. 
    Excel.Visible = false; // Make Excel invisible. 
    Book = Excel.Workbooks.Add() // Create a new work book. 


    Book.ActiveSheet.Cells(1,1).Value = document.A1.value; 

    Book.SaveAs("G:/whiteboard.xls"); 
    Excel.Quit(); // Close Excel with the Quit method on the Application object. 
    alert("Uppgifter sparade"); 
    } 

而且我要救的不是的saveAs。

任何想法?

+4

我不认为这是可能的背景下 - 在任何情况下,你应该写一本新书的文件保存到任何位置,不只是简单的保存:任何应用程序会要求你指定1日保存的文件路径。 – 2013-02-16 12:03:18

+0

交互式Excel或Excel VBA不允许保存新工作簿,因为它会像临时文件一样创建新文件,因此您必须指定路径和名称。所以ActiveX也不允许它。 – 2013-03-12 20:08:07

回答

0

如果有人仍然在寻找这个。 使用excelObj.ActiveWorkbook.Save();保存Excel文件。 这里是一个例子。

function saveExcel() { 

    var excel = new ActiveXObject("Excel.Application"); 
    excel.Visible = false; 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 


    var path = "file:\\\\C:\\Users\\User\\Desktop\\TestFile.xls"; 
    var excel_file = excel.Workbooks.Open(path); 
    var excel_sheet = excel_file.Worksheets(1); 

    //Editing all cells from Row 6 to 10 and Column 1 to 5 
    for (var row = 6; row <=10; row++) { 
    for (var col = 1; col <=5 ; col++) { 
     excel_sheet.Cells(row,col).Value = "Setting New Cell Data"; 
     }; 
    }; 
    //Save Excel  
    excel.ActiveWorkbook.Save(); 

    alert("Excel Saved!"); 
    //showing excel are editing is done. 
    excel.Visible = true; 
    excel = null; 
    excel_file = null; 

};