【发布时间】:2014-02-12 07:32:49
【问题描述】:
规格
- 使用 .Net 3.5/4.0 框架
- Web 应用程序 C#
- 机器未安装 MS Office
问题: 需要从网络浏览器打开 excel 文件报告,以便用户编辑报告并将更新保存在 excel 文件中。 (有可能吗?因为机器没有安装 MS Office)。
按代码:我只能读取文件并通过网格显示,但不能编辑。
public void LoadExceltotheGrid()
{
string connectionString = "";
string fileLocation = MapPath("FileMe20140107.xlsx");
string fileExtension = Path.GetExtension(fileLocation);
if (fileExtension == ".xls")
{
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
fileLocation + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
}
else if (fileExtension == ".xlsx")
{
connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
fileLocation + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
}
System.Data.OleDb.OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString);
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = con;
System.Data.OleDb.OleDbDataAdapter dAdapter = new System.Data.OleDb.OleDbDataAdapter(cmd);
DataTable dtExcelRecords = new DataTable();
con.Open();
DataTable dtExcelSheetName = con.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string getExcelSheetName = dtExcelSheetName.Rows[0]["Table_Name"].ToString();
cmd.CommandText = "SELECT * FROM [" + getExcelSheetName + "]";
dAdapter.SelectCommand = cmd;
dAdapter.Fill(dtExcelRecords);
GridView1.DataSource = dtExcelRecords;
GridView1.DataBind();
}
【问题讨论】:
-
您应该可以将 Office 365 的 Excel Web App 嵌入到您自己的网站中,但我认为 xlsx 必须存储在云中(SkyDrive/Office365/Sharepoint Online)。至少可以说,重塑 Excel 将非常困难
-
该应用程序已经存在并被广泛使用。我无能为力,我的任务仅限于创建一个函数,该函数将调用 excel 文件并通过网络查看它,并使其可编辑。
-
你的任务是完成一项不可能完成的任务。
标签: c# asp.net excel web oledb