using Spire.XLS;
string filePath = txt_File_Location.Text;
string Access = System.Windows.Forms.Application.StartupPath + "\\BRW_SalesOrder";
string Excel = txt_File_Location.Text;
string connect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Excel + ";Extended Properties=Excel 12.0;";
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
Excel.Range range;
string str, str1;
int rCnt, rCnt1;
int cCnt, cCnt1;
int rw = 0;
int cl = 0;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(Excel, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;
//Ship-Via,Payment-Terms,Po Number, Order-Date
Microsoft.Office.Interop.Excel.Range Range_Number_Ship, Range_Number_PT, Range_Number_CPO, Range_Number_OD, r2;
Range_Number_Ship = xlWorkSheet.UsedRange.Find("Ship Via");
Range_Number_PT = xlWorkSheet.UsedRange.Find("Payment Terms");
Range_Number_CPO = xlWorkSheet.UsedRange.Find("Customer PO Number");
Range_Number_OD = xlWorkSheet.UsedRange.Find("Order Date");
string f_number_Ship = "", f_number_PT = "", f_number_CPO = "", f_number_OD = "";
r2 = xlWorkSheet.Cells;
int n_c_Ship = Range_Number_Ship.Column;
int n_r_Ship = Range_Number_Ship.Row;
int n_c_PT = Range_Number_PT.Column;
int n_r_PT = Range_Number_PT.Row;
int n_c_CPO = Range_Number_CPO.Column;
int n_r_CPO = Range_Number_CPO.Row;
int n_c_OD = Range_Number_OD.Column;
int n_r_OD = Range_Number_OD.Row;
var number_Ship = ((Range)r2[n_r_Ship, n_c_Ship + 4]).Value;
f_number_Ship = (string)number_Ship;
var number_PT = ((Range)r2[n_r_PT, n_c_PT + 4]).Value;
f_number_PT = (string)number_PT;
var number_CPO = ((Range)r2[n_r_CPO, n_c_CPO + 4]).Value;
f_number_CPO = (string)number_CPO;
var number_OD = ((Range)r2[n_r_OD, n_c_OD + 4]).Value;
f_number_OD = ((DateTime)number_OD).ToString("MM/dd/yyyy");
//Ship-Address
Microsoft.Office.Interop.Excel.Range Range_Number_SHIPADD, r6;
Range_Number_SHIPADD = xlWorkSheet.UsedRange.Find("Ship To");
string f_number_SHIPADD = ""; ;
r6 = xlWorkSheet.Cells;
int n_c_SHIPADD = Range_Number_SHIPADD.Column;
int n_r_SHIPADD = Range_Number_SHIPADD.Row;
for (rCnt = n_r_SHIPADD + 1; rCnt <= rw; n_r_SHIPADD++)
{
var number_SHIPADD = ((Range)r6[n_r_SHIPADD + 1, n_c_SHIPADD]).Value;
if (number_SHIPADD == null)
{
break;
}
else
{
f_number_SHIPADD = (string)number_SHIPADD;
}
}
//Sales-Representation
Microsoft.Office.Interop.Excel.Range Range_Number_SalesRep, r7;
Range_Number_SalesRep = xlWorkSheet.UsedRange.Find("Sales Rep");
string f_number_SalesRep = ""; ;
r7 = xlWorkSheet.Cells;
int n_c_SalesRep = Range_Number_SalesRep.Column;
int n_r_SalesRep = Range_Number_SalesRep.Row;
for (rCnt = n_r_SalesRep + 1; rCnt <= rw; n_r_SalesRep++)
{
var number_SalesRep = ((Range)r7[n_r_SalesRep, n_c_SalesRep]).Value;
if (number_SalesRep == null)
{
break;
}
else
{
f_number_SalesRep = (string)number_SalesRep;
StringBuilder sb = new StringBuilder();
sb.AppendLine(f_number_SalesRep);
string pattern = @"Sales Rep: [A-Za-z]+\s[A-Za-z]+";
var result = Regex.Match(f_number_SalesRep, pattern, RegexOptions.Multiline).ToString().Split(':')[1];
f_number_SalesRep = result.ToString();
// string test = f_number_SalesRep.Substring(f_number_SalesRep.IndexOf("Sales Rep"), (f_number_SalesRep.IndexOf("\nPhone") - f_number_SalesRep.IndexOf("Sales Rep"))).Split(':')[1];
// MessageBox.Show(test);
}
}
//Product-Code
Microsoft.Office.Interop.Excel.Range Range_Number_Produ, r;
Range_Number_Produ = xlWorkSheet.UsedRange.Find("Produ");
string f_number_Produ = "";
r = xlWorkSheet.Cells;
int n_c = Range_Number_Produ.Column;
int n_r = Range_Number_Produ.Row;
string product_no;
//Product-Desc
Microsoft.Office.Interop.Excel.Range Range_Number_Descr, r3;
Range_Number_Descr = xlWorkSheet.UsedRange.Find("Description");
string f_number_Descr = "", f_new_Desc = "";
r3 = xlWorkSheet.Cells;
int n_c_Descr = Range_Number_Descr.Column;
int n_r_Descr = Range_Number_Descr.Row;
rCnt1 = n_r + 1;
rCnt = n_r_Descr + 1;
//Unit Price
Microsoft.Office.Interop.Excel.Range Range_Number_UP, r4;
Range_Number_UP = xlWorkSheet.UsedRange.Find("Unit Price");
double f_number_UP;
r4 = xlWorkSheet.Cells;
int n_c_UP = Range_Number_UP.Column;
int n_r_UP = Range_Number_UP.Row;
int rCnt3 = n_r_UP + 1;
//Quantity
Microsoft.Office.Interop.Excel.Range Range_Number_QTY, r5;
Range_Number_QTY = xlWorkSheet.UsedRange.Find("Qty");
double f_number_QTY;
r5 = xlWorkSheet.Cells;
int n_c_QTY = Range_Number_QTY.Column;
int n_r_QTY = Range_Number_QTY.Row;
int rCnt4 = n_r_QTY + 1;
string bn;
test:
for (; rCnt1 <= rw; )
{
var number_Produ = ((Range)r[n_r + 1, n_c]).Value;
f_number_Produ = (string)number_Produ;
if (f_number_Produ != null)
{
//MessageBox.Show(f_number_Produ);
product_no = f_number_Produ;
// comboBox2.Items.Add(product_no);
for (; rCnt <= rw; )
{
var number_Descr = ((Range)r3[n_r_Descr + 1, n_c_Descr - 1]).Value;
f_number_Descr = (string)number_Descr;
if (f_number_Descr != "Sub Total:")
{
f_new_Desc = f_number_Descr;
for (; rCnt4 <= rw; )
{
var number_QTY = (((Range)r5[n_r_QTY + 1, n_c_QTY]).Value).ToString();
bn = "Buyer Name:";
if (number_QTY == bn)
{
break;
}
else
{
f_number_QTY = double.Parse(number_QTY.ToString());
}
for (; rCnt3 <= rw; )
{
var number_UP = ((Range)r4[n_r_UP + 1, n_c_UP - 1]).Value;
if (number_UP != null)
{
f_number_UP = double.Parse(number_UP.ToString());
//string filePath1 = "D:\\PDF Brandwise Orders for MIke.xlsx";
//string Access1 = "D:\\BRW_SalesOrder.mdb";
//string Excel11 = "D:\\PDF Brandwise Orders for MIke.xlsx";
//string connect1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Excel + ";Extended Properties=Excel 12.0;";
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand())
{
OleDbCommand cmd2 = new OleDbCommand();
cmd2.Connection = conn;
cmd.Connection = conn;
conn.Close();
conn.Open();
cmd.CommandText = "INSERT INTO [MS Access;Database=" + Access + "].[Excel_table] (Division,[Customer ID],[Order Date],[Terms Code],[Salesperson],[Ship Via],[Ship To Address Code],[Customer PO],[Item Code]) values('00','" + f_number_CPO + "','" + f_number_OD + "','" + f_number_PT + "','" + f_number_SalesRep + "','" + f_number_Ship + "','" + f_number_SHIPADD + "','" + f_number_CPO + "','" + f_number_Produ + "')";
cmd.ExecuteNonQuery();
cmd2.CommandText = "UPDATE [MS Access;Database=" + Access + "].[Excel_table] set [Item Description]='" + f_new_Desc + "', [Unit Price]='" + f_number_UP + "', [Quantity Ordered]='" + f_number_QTY + "' where [Item Code]='" + product_no + "' and Salesperson='" + f_number_SalesRep + "' and [Order Date]='" + f_number_OD + "' ";
cmd2.ExecuteNonQuery();
n_r++;
n_r_Descr++;
n_r_UP++;
n_r_QTY++;
goto test;
}
}
}
}
}
}
else
{
break;
}
}
}
else
{
break;
}
}
xlWorkBook.Close(true, null, null);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);
MessageBox.Show("Sucessfully upl
oaded...");