使用C#单击excel文件中的按钮

时间:2014-11-07 11:17:59

标签: c# excel winforms

我有excel文件,它在标题中有导出按钮。当我们打开excel并点击导出时,宏会在后台运行,并将excel导出到某个位置。

我正在编写C#winform应用程序,它是这个excel文件的包装器。这个winform应用程序有Export按钮。当用户点击winform按钮C#代码应打开excel文件并以编程方式单击excel文件中的导出按钮并导出文件。

我正在使用OLEDBConnection来连接excel文件。如何使用C#单击excel文件中的按钮?

我有代码从excel读取数据。

private void CreateConnectionString()
        {
            ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties="
                    + "\"Excel 12.0 Xml;HDR=YES;IMEX=3;READONLY=FALSE\"";
        }

private void ReadDataFromExcelAndShowInGrid()
        {
            DataSet dataSet = new DataSet();
            string sql = "Select * From [TimeSheet$]";
            using (OleDbConnection cn = new OleDbConnection(ConnectionString))
            {
                using (OleDbDataAdapter adapter = new OleDbDataAdapter(sql, cn))
                {
                    adapter.Fill(dataSet, "Data");
                }
            }

            DataRowCollection dataRows = dataSet.Tables["Data"].Rows;
            for (int i = 0; i < dataRows.Count; ++i)
            {
                string cDateTime = ConvertAndReturnStringToDateTime(dataRows[i].ItemArray[0].ToString(), "MM-dd-yyyy");
                if (cDateTime != string.Empty)
                {
                    if (EndOfWeek.Equals(cDateTime))
                    {
                        var date = ConvertAndReturnStringToDateTime(dataRows[i].ItemArray[1].ToString(), "dd-MM-yyyy");
                        var start = ConvertAndReturnStringToDateTime(dataRows[i].ItemArray[2].ToString(), "dd-MM-yyyy hh:mm:ss");
                        var stop = ConvertAndReturnStringToDateTime(dataRows[i].ItemArray[3].ToString(), "dd-MM-yyyy hh:mm:ss");
                        table.Rows.Add(cDateTime, date,
                            start, stop,
                            dataRows[i].ItemArray[4].ToString(), dataRows[i].ItemArray[5].ToString(),
                            dataRows[i].ItemArray[6].ToString(), dataRows[i].ItemArray[7].ToString(),
                            dataRows[i].ItemArray[8].ToString());
                    }
                }
            }
        }
private string ConvertAndReturnStringToDateTime(string dateTimeFromFile, string dateFormat)
        {
            string dateTime = string.Empty;

            double fileDateweek = 0.0d;
            if (double.TryParse(dateTimeFromFile, out fileDateweek))
            {
                dateTime = DateTime.FromOADate(fileDateweek).ToString(dateFormat);
            }
            return dateTime;
        }

0 个答案:

没有答案