是否可以在Web浏览器上打开和编辑Excel文件?

我正在使用MVC4的Web应用程序,并希望打开具有可编辑function的Web浏览器上的Excel文件。 要求是最终用户的Excel格式不固定,但我们的数据库列是固定的,我想保存Excel参数在我们的数据库。

这可能吗?

使用EPPlus库可以尝试下面的代码。 path是你的excel文件在服务器上的相对path。 第一个foreach循环用于Header部分,第二个for循环用于表单的其余部分。 大部分代码是自我解释的。

  private DataTable getDataTableFromExcel(string path) { using (var pck = new OfficeOpenXml.ExcelPackage()) { using (var stream = File.OpenRead(path)) { pck.Load(stream); } var ws = pck.Workbook.Worksheets.First(); DataTable dt = new DataTable(); bool hasHeader = true; int headercol = 1; int rownumber = 1; try { foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column]) { dt.Columns.Add(headercol.ToString()); headercol++; } var startRow = hasHeader ? 2 : 1; for (var rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++) { var wsRow = ws.Cells[rowNum, 1, rowNum, 38]; //last parameter is colums count, here i fixed it to 38 var row = dt.NewRow(); foreach (var cell in wsRow) { row[cell.Start.Column - 1] = cell.Text; } dt.Rows.Add(row); rownumber++; } return dt; } catch (Exception x) { // throw new Exception(x + " on row " + rownumber); return null;//Dont use null, But Log your exception here. } } } 

正如瓦莱里奥·卡萨诺(Valerio Cassano)所build议的,你可能能够自己find一些工作。 但这取决于您需要多less编辑以及您的电子表格有多复杂。

要从Excel文件中读取数据,您可以使用EPPlus等.Net组件。 这是相当快速和易于使用,并让您提取您需要的大部分数据容易。

但是为了使数据在网页中可见和可编辑,您需要更多的东西。 有一些网页(基于HTML / JS的)组件,可以让你以Excel的forms显示表格数据。 查看Handsontable例如。 与EPPlus一起使用时,您应该能够从Excel文件中读出数据,并在网页中显示一些可能的编辑内容,最后您可以将这些数据提交回服务器并生成一个新的Excel文件再次使用EPPlus。

这将需要一些编码,但它是绝对可行的。

现在,这可能不会支持公式,而不是数字/图表,但只要你的文件只包含数据和简单的格式,你应该没问题。