Excel Programming (C# + VBA) Part III
Step 6 Import the data in excel to database
a. Create excel app object and open the uploaded file
Workbook wb = xlsApp.Workbooks.Open(_filePath,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing, Type.Missing,Type.Missing,Type.Missing,Type.Missing);
wb.Unprotect(TemplatePassword);
b. Save the upload file as a temporary file. Then close uploaded file and open the temporary file
wb.Unprotect(TemplatePassword);
wb.SaveCopyAs(tempFileName);
c. Verify the data in template again in web application
if(!(iChecked == 1))
{
returnVal = "Please verify the data before upload to the server!";
throw new Exception(returnVal);
}
if(templatetype.ToUpper() != _templatetype.ToUpper())
{
returnVal = "The version is not corrected, please verify the document and uploaded again";
throw new Exception(returnVal);
}
……
private void ReadDataSource(Worksheet ws, out string branchID, out string planDate, out DateTime startDate,out DateTime endDate, out int iChecked, out string templatetype)
{
string check = ws.get_Range("A1", System.Type.Missing).Text.ToString();
branchID = ws.get_Range("A2", System.Type.Missing).Text.ToString();
string sDate = ws.get_Range("A4", System.Type.Missing).Text.ToString();
string eDate = ws.get_Range("A5", System.Type.Missing).Text.ToString();
planDate = ws.get_Range("A6", System.Type.Missing).Text.ToString();
templatetype = ws.get_Range("A7", System.Type.Missing).Text.ToString();
startDate = DateTime.Parse(sDate);
endDate = DateTime.Parse(eDate);
try
{
iChecked = Convert.ToInt16(check);
}
catch
{
iChecked = 0;
}
}
d. Read the data in the worksheet
string territoryIDList = ws.get_Range("AB" + i.ToString(), System.Type.Missing).Text.ToString();
string category = ws.get_Range("E" + i.ToString(), System.Type.Missing).Text.ToString();
string categoryID = ws.get_Range("AE" + i.ToString(), System.Type.Missing).Text.ToString();
e. Change the database based on data in excel sheet
SqlHelper.ExecuteNonQuery(connnectionString, CommandType.Text, "insert into … ");
Summary: Objects used in this sample
a. Excel.Application
i. Application.Workbooks.Open
ii. Quit
b. Excel.Workbook
i. SaveCopyAs
ii. Unprotect
iii. Worksheets
iv. Protect
v. .Names.Add
vi. Close
c. Excel.WorkSheet
i. Unprotect
ii. Protect
iii. .Hyperlinks.Add
d. Range
i. Value2
ii. Text
e. Cell, Cells