如何在Web应用程序中打开excel文件,我想打开excel文件并允许用户进行编辑和保存,就像在MS Office中一样。我正在尝试在.net的Web应用程序中打开文档文件。我可以打开和显示pdf文件,我还希望允许用户能够根据办公室的经验打开和编辑excel和word文件
答案 0 :(得分:1)
首先,必须将Excel程序集添加到项目中。为此,您必须通过转到“项目”->“添加引用”菜单项来添加对Microsoft.Office.Interop.Excel库的引用。转到弹出的对话框的.NET选项卡,然后向下滚动Microsoft.Office.Interop.Excel列表项。双击它,然后按确定。这会将引用添加到您的项目。在代码的“使用”部分,键入
using Excel = Microsoft.Office.Interop.Excel;
将程序集添加到项目后,需要创建一个新应用程序:
Excel.Application excelApp = new Excel.Application();
如果要使用户可以看到Excel,则必须将Visible属性设置为true,默认值为false。
excelApp.Visible = true;
上面的代码打开Excel应用程序,为了使用该应用程序,您必须通过创建Workbook对象来打开工作簿。您可以使用以下代码打开一个新的空白工作簿:
Excel.Workbook newWorkbook = excelApp.Workbooks.Add();
前面的代码用一张纸打开一个空白工作簿。 .Add方法可以选择使用模板对象。如果将该参数保留为空白,则将使用默认模板(例如,当您手动打开Excel时)。
如果要打开一个现有文档进行编辑而不是创建一个新文档,则可以使用以下代码打开Workbook对象:
string workbookPath = "c:/SomeWorkBook.xls";
Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath,
0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "",
true, false, 0, true, false, false);
前面的代码可能需要一些解释。当然,workbookPath是要打开的现有电子表格的路径,如果使用.NET 4.0和Office 2007库(Microsoft.Office.Interop.Excel库),则它是唯一需要的参数。其余的excelApp.Workbooks.open参数不太明显。以下是传递给该函数的参数的列表:
WorkBooks.open(string Filename, object UpdateLinks, object ReadOnly, object Format,
object Password, object WriteResPassword, object ReadOnlyRecommend, object Origin,
object Delimiter, object Editable, object Notify, object Converter, object AddToMru,
object Local, object CorruptLoad )
要查看有关此功能的文档,请访问Microsoft网站的链接,以获取有关该功能的进一步说明:enter link description here
一旦创建或打开了工作簿,就必须创建一个将工作表保存在工作簿中的表格对象。以下代码将获取您先前打开的工作簿中的所有工作表。
Excel.Sheets excelSheets = excelWorkbook.Worksheets;
现在您有了工作表的集合,您必须在其中获得单个工作表的编辑数据。
string currentSheet = "Sheet1";
Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
在前面的代码中,必须键入强制转换excelSheets.get_Item(string)方法,因为它返回一个对象。现在您已经有了工作表,可以使用以下代码访问单个单元格了:
Excel.Range excelCell =
(Excel.Range)excelWorksheet.get_Range("A1", "A1");
get_Range函数必须带有两个参数。如果两个参数相等,则选择一个单元格;否则,将选择一个单元格范围。同样,您必须键入cast方法的返回值。拥有单元格对象后,您可以使用.Value2属性设置其值,也可以使用其他任何属性来操纵单元格的范围。