通过Laravel文件运行C#应用程序未打开
我有一个Laravel应用程序,我正在尝试使用Php Exec()函数执行c#应用程序。 我为OpenMicrosoftExcel工作表准备了一个c#应用程序,并对其进行了更新。如果我手动运行该c#应用程序,它将正常工作。但如果我从laravel运行该c#应用程序,则该c#应用程序不会完全运行。该过程是停止excel文件加载部分 这是我的c代码 有人知道吗?对不起,我的英语不好通过Laravel文件运行C#应用程序未打开,c#,excel,laravel,execute,shellexecute,C#,Excel,Laravel,Execute,Shellexecute,我有一个Laravel应用程序,我正在尝试使用Php Exec()函数执行c#应用程序。 我为OpenMicrosoftExcel工作表准备了一个c#应用程序,并对其进行了更新。如果我手动运行该c#应用程序,它将正常工作。但如果我从laravel运行该c#应用程序,则该c#应用程序不会完全运行。该过程是停止excel文件加载部分 这是我的c代码 有人知道吗?对不起,我的英语不好 using System; using System.Collections.Generic; using Syste
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop.Excel;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Data;
using System.IO;
namespace Excel_Export
{
class Program
{
public static void Main(string[] args)
{
if (args.Length > 0)
{
Console.WriteLine(args[0]);
Console.WriteLine(args[1]);
Console.WriteLine(args[2]);
File.AppendAllText(Environment.CurrentDirectory + @"\log.txt", args[0].ToString());
}
MySqlConnection con = new MySqlConnection("server=localhost; user id=user; password=123456; database=softera; pooling=false;");
MySqlDataAdapter adr = new MySqlDataAdapter();
MySqlCommand cmd;
// Create the SelectCommand.
cmd = new MySqlCommand("hrms_sp_rpt_Payroll_SalaryBankFile_Excel", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new MySqlParameter("_compID", 1));
cmd.Parameters.Add(new MySqlParameter("_subID", 1));
cmd.Parameters.Add(new MySqlParameter("_actID", 1));
cmd.Parameters.Add(new MySqlParameter("_pgID", 1));
cmd.Parameters.Add(new MySqlParameter("_payFromDate",MySqlDbType.Date));
cmd.Parameters[4].Value = "2020-02-01";
cmd.Parameters.Add(new MySqlParameter("_payToDate",MySqlDbType.Date));
cmd.Parameters[5].Value = "2020-02-29";
adr.SelectCommand = cmd;
adr.SelectCommand.CommandType = CommandType.StoredProcedure;
System.Data.DataTable dt = new System.Data.DataTable();
adr.Fill(dt);
Application xlApp = new Application();
if (xlApp == null)
{
//just to check if we get hold of the excel aplication
return;
}
//Notpad To Test excel open
File.AppendAllText(Environment.CurrentDirectory + @"\log.txt", "start: " + DateTime.Now.ToString());
Workbook xlWorkBook = xlApp.Workbooks.Open(Environment.CurrentDirectory + @"\SalaryBankFile.xlsm");
//Notpad To Test excel open passed
File.AppendAllText(Environment.CurrentDirectory + @"\log.txt", "start1: " + DateTime.Now.ToString());
Worksheet xlWorkSheet = xlApp.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
Microsoft.Office.Interop.Excel.Range userRange = xlWorkSheet.UsedRange;
int x = userRange.Rows.Count;
object misValue = System.Reflection.Missing.Value;
for (int i= 0; i < (dt.Rows.Count); i++)
{
x = x + 1;
xlWorkSheet.Cells[x, 1] = string.Format("{0}", dt.Rows[i]["TranID"].ToString());
xlWorkSheet.Cells[x, 2] = string.Format("{0}", dt.Rows[i]["DestinationBank"].ToString());
xlWorkSheet.Cells[x, 3] = string.Format("{0}", dt.Rows[i]["DestinationBr"].ToString());
xlWorkSheet.Cells[x, 4] = string.Format("{0}", dt.Rows[i]["Destination"].ToString());
xlWorkSheet.Cells[x, 5] = string.Format("{0}", dt.Rows[i]["DestinationAccountName"].ToString());
xlWorkSheet.Cells[x, 6] = string.Format("{0}", dt.Rows[i]["TRNcode"].ToString());
xlWorkSheet.Cells[x, 7] = string.Format("{0}", dt.Rows[i]["Returncode"].ToString());
xlWorkSheet.Cells[x, 8] = string.Format("{0}", dt.Rows[i]["Cr_Drcode"].ToString());
xlWorkSheet.Cells[x, 9] = string.Format("{0}", dt.Rows[i]["Returndate"].ToString());
xlWorkSheet.Cells[x, 10] = string.Format("{0}", dt.Rows[i]["Amount"].ToString());
xlWorkSheet.Cells[x, 11] = string.Format("{0}", dt.Rows[i]["Currencycode"].ToString());
xlWorkSheet.Cells[x, 12] = string.Format("{0}", dt.Rows[i]["OriginatingBank"].ToString());
xlWorkSheet.Cells[x, 13] = string.Format("{0}", dt.Rows[i]["OriginatingBranch"].ToString());
xlWorkSheet.Cells[x, 14] = string.Format("{0}", dt.Rows[i]["OriginatingAccount"].ToString());
xlWorkSheet.Cells[x, 15] = string.Format("{0}", dt.Rows[i]["OriginatingAccountName"].ToString());
xlWorkSheet.Cells[x, 16] = string.Format("{0}", dt.Rows[i]["Particulars"].ToString());
xlWorkSheet.Cells[x, 17] = string.Format("{0}", dt.Rows[i]["Reference"].ToString());
xlWorkSheet.Cells[x, 18] = string.Format("{0}", dt.Rows[i]["ValueDate"].ToString());
xlWorkSheet.Cells[x, 19] = string.Format("{0}", dt.Rows[i]["SecurityField"].ToString());
xlWorkSheet.Cells[x, 20] = string.Format("{0}", dt.Rows[i]["Filler"].ToString());
}
xlWorkBook.SaveAs(Environment.CurrentDirectory + @"\SalaryBankFile1.xls", XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, Type.Missing, Type.Missing);
xlApp.Quit();
//releaseObject(xlWorkSheet);
//releaseObject(xlWorkBook);
//releaseObject(xlApp);
}
}
}
public function runexebank($subID,$actID,$pgID,$payFromDate,$payToDate)
{
// $argument = '';
// exec("D:\ConsoleApp2.exe $argument");
// dd($output);
// $escaped_cmd = escapeshellcmd("D:\xampp\htdocs\softera\ConsoleApp2.exe ");
// exec($escaped_cmd);
exec("D:\\xampp\\htdocs\\softera\\public\\Excel_Export.exe");
// return view('city.create');
// $WshShell = new COM("WScript.Shell");
// $oExec = $WshShell->exec("D:\\ConsoleApp2.exe");
}