写数据到Excel – C#

我需要将数据写入excel表格,写入后需要打开它。 这是我正在使用的代码

object misValue = System.Reflection.Missing.Value; Excel.Application xlAppEnv = new Excel.ApplicationClass(); Excel.Workbook xlForEnv = xlAppEnv.Workbooks.Add(misValue); Excel.Worksheet xlForEnv_View = (Excel.Worksheet)xlForEnv.Worksheets.get_Item(1); xlForEnv_View.Name = "PF Keys"; xlForEnv_View.Cells[row, column] = "data"; 

我可以使用上面的代码写数据,当我完成后,我可以使用下面的代码将文件保存到预定义的位置..

 envSaveLoc = envSaveLoc + "\\PF Keys.xlsx"; xlForEnv.SaveAs(envSaveLoc, Excel.XlFileFormat.xlOpenXMLWorkbook, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlAppEnv.DisplayAlerts = true; xlForEnv.Close(true, misValue, misValue); xlAppEnv.Quit(); 

上面的代码工作正常,但现在的要求是,程序不应该保存它,但一旦数据写入到Excel表格,打开Excel中的文件,并呈现给用户。 然后,用户可以使用“文件” – >“另存为”选项自行查看和保存。 我怎样才能做到这一点? 数据可以存储在某个临时位置,以呈现给用户。

那么简单地显示使用Excel应用程序窗口呢

 xlAppEnv.Visible = true; 

这应该显示所有你写的数据的Excel窗口,并让用户决定如何进行。

这是我用来运行SQL查询并将返回的结果放在数据集中,然后将数据集写入Excel。 从那里你可以做任何你想要的,保存/打印/ convertoPDF等等

 int i = 0; int j = 0; _Workbook workbooksExcel; Worksheet worksheet; Excel._Application docExcel; //This will run a SQL Query and write results to DataSet SqlConnection conn; string sql = null; object misValue = System.Reflection.Missing.Value; docExcel = null; string ConnectionString = "Data Source=DS;Initial Catalog=TestDB;User ID = sa;Integrated Security=True;MultipleActiveResultSets=True"; conn = new System.Data.SqlClient.SqlConnection(ConnectionString); conn.Open(); sql = "Insert SQL Statement Here"; System.Data.SqlClient.SqlDataAdapter dscmd = new System.Data.SqlClient.SqlDataAdapter(sql, conn); ds = new DataSet(); dscmd.Fill(ds); conn.Close(); //Here is where the above SQL Statement will write to Excel for (i = 0; i <= SQLConnection.ds.Tables[0].Rows.Count - 1; i++) { for (j = 0; j <= SQLConnection.ds.Tables[0].Columns.Count - 1; j++) { try { data = ds.Tables[0].Rows[i].ItemArray[j].ToString(); _Workbook workbooksExcel = docExcel.ActiveWorkbook; Worksheet sheetExcel = (Worksheet)workbooksExcel.ActiveSheet; sheetExcel.Cells[i + 2, j + 1].Value = data; } catch (Exception ex) { } } }