时间: 2020-11-21|32次围观|0 条评论

 

Step 6 Import the data in excel to database

a.       Create excel app object and open the uploaded file

Excel Programming (C# + VBA) Part III插图
            Microsoft.Office.Interop.Excel.Application xlsApp 
=
 
new
 ApplicationClass();
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            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);
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            wb.Unprotect(TemplatePassword);
Excel Programming (C# + VBA) Part III插图

 

b.      Save the upload file as a temporary file. Then close uploaded file and open the temporary file

Excel Programming (C# + VBA) Part III插图
           
string
 tempFileName 
=
 _filePath.ToLower().Replace(
"
.xls
"
,
"
_Temp.xls
"
);      
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            wb.Unprotect(TemplatePassword);
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            wb.SaveCopyAs(tempFileName);
Excel Programming (C# + VBA) Part III插图

 

c.       Verify the data in template again in web application

Excel Programming (C# + VBA) Part III插图
            ReadDataSource((Worksheet)wb.Worksheets[DataSourceSheet], 
out
 branchID, 
out
 planDate, 
out
 startDate, 
out
 endDate, 
out
 iChecked, 
out
 templatetype);
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图           

if
(
!
(iChecked 
==
 
1
))
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图1Excel Programming (C# + VBA) Part III插图2            

Excel Programming (C# + VBA) Part III插图3
{
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4                returnVal 
= "Please verify the data before upload to the server!";
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4                  
throw new Exception(returnVal);
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图5            }


Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            

if
(templatetype.ToUpper() 
!=
 _templatetype.ToUpper())
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图1Excel Programming (C# + VBA) Part III插图2            

Excel Programming (C# + VBA) Part III插图3
{
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4                  returnVal 
= "The version is not corrected, please verify the document and uploaded again";
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4                  
throw new Exception(returnVal);
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图5            }


Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图 ……
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图

private
 
void
 ReadDataSource(Worksheet ws, 
out
 
string
 branchID, 
out
 
string
 planDate, 
out
 DateTime startDate,
out
 DateTime endDate, 
out
 
int
 iChecked, 
out
 
string
 templatetype)
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图1Excel Programming (C# + VBA) Part III插图2      

Excel Programming (C# + VBA) Part III插图3
{
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            
string check = ws.get_Range("A1", System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            branchID 
= ws.get_Range("A2", System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            
string sDate = ws.get_Range("A4", System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            
string eDate = ws.get_Range("A5", System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            planDate 
= ws.get_Range("A6", System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            templatetype 
= ws.get_Range("A7", System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            startDate 
= DateTime.Parse(sDate);
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            endDate 
= DateTime.Parse(eDate);
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            
try
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图6Excel Programming (C# + VBA) Part III插图7            
Excel Programming (C# + VBA) Part III插图3{
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4                  iChecked 
= Convert.ToInt16(check);
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图8            }

Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4            
catch
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图6Excel Programming (C# + VBA) Part III插图7            
Excel Programming (C# + VBA) Part III插图3{
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图4                  iChecked 
= 0;
Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图8            }

Excel Programming (C# + VBA) Part III插图4
Excel Programming (C# + VBA) Part III插图5      }

    
Excel Programming (C# + VBA) Part III插图

            

d.      Read the data in the worksheet

Excel Programming (C# + VBA) Part III插图
            
string
 territoryList 
=
 ws.get_Range(
"
B
"
+
 i.ToString(), System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            

string
 territoryIDList 
=
 ws.get_Range(
"
AB
"
 
+
 i.ToString(), System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            

string
 category 
=
 ws.get_Range(
"
E
"
 
+
 i.ToString(), System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图
Excel Programming (C# + VBA) Part III插图            

string
 categoryID 
=
 ws.get_Range(
"
AE
"
 
+
 i.ToString(), System.Type.Missing).Text.ToString();
Excel Programming (C# + VBA) Part III插图

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

转载于:https://www.cnblogs.com/lyrix/archive/2007/12/05/976015.html

原文链接:https://blog.csdn.net/weixin_30342827/article/details/95260500

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《Excel Programming (C# + VBA) Part III
   

还没有人抢沙发呢~