【问题标题】:Open excel file in web application在 Web 应用程序中打开 excel 文件
【发布时间】:2019-01-05 17:40:05
【问题描述】:

如何在 Web 应用程序中打开 excel 文件,我想打开 excel 文件并允许用户编辑和保存,就像在 MS Office 中一样。我正在尝试在 .net 的 Web 应用程序中打开文档文件。我可以打开和显示pdf文件,我也想让用户能够打开和编辑excel和word文件作为办公体验

【问题讨论】:

  • 也许可以从您标记“问题”的字母汤中挑选一种语言开始。

标签: javascript asp.net excel vb.net ms-office


【解决方案1】:

首先,必须将 Excel 程序集添加到项目中。为此,您必须通过转到 Project -> Add Reference 菜单项来添加对 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

创建或打开工作簿后,您必须创建一个 Sheets 对象来保存工作簿中的工作表。以下代码将获取您之前打开的工作簿中的所有工作表。

Excel.Sheets excelSheets = excelWorkbook.Worksheets;

现在您已经有了 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 函数必须有两个参数。如果两个参数相等,则选择单个单元格;否则将选择一系列单元格。同样,您必须键入转换方法的返回值。拥有单元格对象后,您可以使用 .Value2 属性设置其值,或使用任何其他属性来操作单元格范围。

【讨论】:

  • 感谢您的详细解释,我正在尝试允许用户在 web 中编辑 excel 文件而不是单独打开 excel 文件。就像在telerik demos.telerik.com/aspnet-ajax/spreadsheet/examples/overview/… 上可以控制一样,不需要所有功能,只需用户可以编辑一些数据
  • 你的意思是用户应该在不看到文件的情况下编辑文件?
  • 是的。不用打开excel就可以看到。所有标题、所有行和所有列都是自定义的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 2014-03-20
  • 1970-01-01
  • 2018-11-15
  • 1970-01-01
相关资源
最近更新 更多