将数据写入Excel - C#

时间:2014-08-18 10:34:24

标签: c# excel

我需要将数据写入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中打开文件并呈现给用户。然后,用户可以使用File-> Save as选项自行查看并保存。我怎样才能实现它?数据可以存储在一些临时位置以便呈现给用户。

2 个答案:

答案 0 :(得分:1)

如何使用

简单地显示Excel应用程序窗口
xlAppEnv.Visible = true;

这应显示Excel窗口,其中包含您编写的所有数据,并让用户决定如何继续。

答案 1 :(得分:0)

这是我用来运行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) { } 
    }
}