개정판 43ceb5b3
issue #00000 excel의 이미지 import 추가
- Excel add-in source 추가
Change-Id: I01201e511c92771de2fab3be1921265589790490
ID2.Manager/ExcelAddin/ID2ManagerImport/DataImport.cs | ||
---|---|---|
1 |
using SqlConnectionDialog; |
|
2 |
using System; |
|
3 |
using System.Collections.Generic; |
|
4 |
using System.Linq; |
|
5 |
using System.Text; |
|
6 |
using System.Threading.Tasks; |
|
7 |
using System.Data.SqlClient; |
|
8 |
using Microsoft.Office.Interop.Excel; |
|
9 |
using System.Windows.Forms; |
|
10 |
using System.Drawing; |
|
11 |
using System.IO; |
|
12 |
using System.IO.Compression; |
|
13 |
|
|
14 |
namespace ID2ManagerImport |
|
15 |
{ |
|
16 |
public static class DataManager |
|
17 |
{ |
|
18 |
static string tableName = "ImportExcel"; |
|
19 |
|
|
20 |
public static string ConnectionDialog() |
|
21 |
{ |
|
22 |
var factory = new ConnectionStringFactory(); |
|
23 |
var str = factory.OpenDialog(); |
|
24 |
|
|
25 |
return str; |
|
26 |
} |
|
27 |
|
|
28 |
|
|
29 |
public static bool CreateTabile(string connectionString) |
|
30 |
{ |
|
31 |
bool result = false; |
|
32 |
|
|
33 |
try |
|
34 |
{ |
|
35 |
using (SqlConnection connection = new SqlConnection(connectionString)) |
|
36 |
{ |
|
37 |
connection.Open(); |
|
38 |
|
|
39 |
string checkTableQuery = $"SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}'"; |
|
40 |
|
|
41 |
// 쿼리 실행하여 테이블 존재 여부 확인 |
|
42 |
SqlCommand checkTableCommand = new SqlCommand(checkTableQuery, connection); |
|
43 |
|
|
44 |
int tableCount = (int)checkTableCommand.ExecuteScalar(); |
|
45 |
|
|
46 |
if (tableCount == 0) |
|
47 |
{ |
|
48 |
// CREATE TABLE 문 작성 |
|
49 |
string createTableQuery = $"CREATE TABLE {tableName} ( " |
|
50 |
+ " FILE_NAME VARCHAR(MAX)," |
|
51 |
+ " WORKSHEET_NAME VARCHAR(MAX)," |
|
52 |
+ " COUMMN_INDEX INT," |
|
53 |
+ " ROW_INDEX INT," |
|
54 |
+ " VALUE VARCHAR(MAX)," |
|
55 |
+ " TopLeftCell VARCHAR(MAX)," |
|
56 |
+ " OBJECT_TYPE INT" |
|
57 |
+ " )"; |
|
58 |
|
|
59 |
// CREATE TABLE 쿼리 실행 |
|
60 |
SqlCommand createTableCommand = new SqlCommand(createTableQuery, connection); |
|
61 |
createTableCommand.ExecuteNonQuery(); |
|
62 |
|
|
63 |
connection.Close(); |
|
64 |
} |
|
65 |
|
|
66 |
result = true; |
|
67 |
} |
|
68 |
} |
|
69 |
catch (Exception) |
|
70 |
{ |
|
71 |
throw; |
|
72 |
} |
|
73 |
return result; |
|
74 |
} |
|
75 |
|
|
76 |
public static void DeleteData(SqlConnection connection,string FileName, string worksheetName) |
|
77 |
{ |
|
78 |
|
|
79 |
string delQuery = $"DELETE FROM {tableName} WHERE FILE_NAME = '{FileName}' AND WORKSHEET_NAME = '{worksheetName}'"; |
|
80 |
|
|
81 |
// SQL 쿼리 실행 |
|
82 |
SqlCommand command = new SqlCommand(delQuery, connection); |
|
83 |
command.ExecuteNonQuery(); |
|
84 |
} |
|
85 |
|
|
86 |
public static bool Import(string FileName, Microsoft.Office.Interop.Excel.Worksheet worksheet) |
|
87 |
{ |
|
88 |
bool result = true; |
|
89 |
|
|
90 |
try |
|
91 |
{ |
|
92 |
var connectionStr = ConnectionDialog(); |
|
93 |
|
|
94 |
if (connectionStr != null) |
|
95 |
{ |
|
96 |
if (CreateTabile(connectionStr)) |
|
97 |
{ |
|
98 |
|
|
99 |
using (SqlConnection connection = new SqlConnection(connectionStr)) |
|
100 |
{ |
|
101 |
connection.Open(); |
|
102 |
|
|
103 |
DeleteData(connection, FileName, worksheet.Name); |
|
104 |
|
|
105 |
Range range = worksheet.UsedRange; |
|
106 |
|
|
107 |
// 행 반복 |
|
108 |
for (int row = 1; row <= range.Rows.Count; row++) |
|
109 |
{ |
|
110 |
// 열 반복 |
|
111 |
for (int column = 1; column <= range.Columns.Count; column++) |
|
112 |
{ |
|
113 |
string cellAddress = range.Cells[row, column].Address; |
|
114 |
var cellValue = range.Cells[row, column].Value; |
|
115 |
//Range cell = range.Cells[row, column]; |
|
116 |
//XlCellType cellType = cell.Cells[row, column].CellType; |
|
117 |
//// 현재 셀 값 가져오기 |
|
118 |
//string cellValue = cell.Cells[row, column].Value2.ToString(); |
|
119 |
if (cellValue != null) |
|
120 |
{ |
|
121 |
// SQL INSERT 쿼리 작성 |
|
122 |
string query = $"INSERT INTO {tableName} (FILE_NAME,WORKSHEET_NAME,COUMMN_INDEX,ROW_INDEX,VALUE,TopLeftCell,OBJECT_TYPE) " |
|
123 |
+ $" VALUES ('{FileName}','{worksheet.Name}',{column},{row},'{cellValue}','{cellAddress}',0)"; |
|
124 |
|
|
125 |
// SQL 쿼리 실행 |
|
126 |
SqlCommand command = new SqlCommand(query, connection); |
|
127 |
command.ExecuteNonQuery(); |
|
128 |
} |
|
129 |
} |
|
130 |
} |
|
131 |
|
|
132 |
ImportImage(connection, FileName, worksheet); |
|
133 |
|
|
134 |
connection.Close(); |
|
135 |
result = true; |
|
136 |
} |
|
137 |
} |
|
138 |
} |
|
139 |
} |
|
140 |
catch (Exception) |
|
141 |
{ |
|
142 |
|
|
143 |
throw; |
|
144 |
} |
|
145 |
|
|
146 |
return result; |
|
147 |
} |
|
148 |
|
|
149 |
private static int GetColumnIndex(string CellAddress) |
|
150 |
{ |
|
151 |
int columnIndex = 0; |
|
152 |
|
|
153 |
if (CellAddress.TrimStart('$').Split('$').Length > 0) |
|
154 |
{ |
|
155 |
string columnAddress = CellAddress.TrimStart('$').Split('$')[0]; |
|
156 |
|
|
157 |
foreach (char c in columnAddress) |
|
158 |
{ |
|
159 |
columnIndex = columnIndex * 26 + (int)c - 64; |
|
160 |
} |
|
161 |
} |
|
162 |
|
|
163 |
return columnIndex; |
|
164 |
} |
|
165 |
|
|
166 |
private static int GetRowIndex(string CellAddress) |
|
167 |
{ |
|
168 |
int RowIndex = 0; |
|
169 |
|
|
170 |
if (CellAddress.TrimStart('$').Split('$').Length > 1) |
|
171 |
{ |
|
172 |
string columnAddress = CellAddress.TrimStart('$').Split('$')[1]; |
|
173 |
RowIndex = Convert.ToInt32(columnAddress); |
|
174 |
} |
|
175 |
|
|
176 |
return RowIndex; |
|
177 |
} |
|
178 |
|
|
179 |
|
|
180 |
public static bool ImportImage(SqlConnection connection, string FILE_NAME, Worksheet worksheet) |
|
181 |
{ |
|
182 |
bool result = true; |
|
183 |
|
|
184 |
try |
|
185 |
{ |
|
186 |
|
|
187 |
const Microsoft.Office.Core.MsoShapeType pictureShapeType = Microsoft.Office.Core.MsoShapeType.msoPicture; |
|
188 |
|
|
189 |
string query = $"INSERT INTO {tableName} (FILE_NAME,WORKSHEET_NAME,COUMMN_INDEX,ROW_INDEX,TopLeftCell,VALUE,OBJECT_TYPE) " |
|
190 |
+ $" VALUES (@FileName,@worksheetName,@ColumnIndex,@RowIndex,@TopLeftCell,@cellValue,@ObjectType)"; |
|
191 |
|
|
192 |
List<Microsoft.Office.Interop.Excel.Shape> shapes = new List<Shape>(); |
|
193 |
|
|
194 |
foreach (Shape shape in worksheet.Shapes) |
|
195 |
{ |
|
196 |
shapes.Add(shape); |
|
197 |
} |
|
198 |
|
|
199 |
foreach (Shape shape in shapes) |
|
200 |
{ |
|
201 |
if (shape.Type == pictureShapeType) |
|
202 |
{ |
|
203 |
string location = shape.TopLeftCell.Address; // 이미지의 위치 정보 |
|
204 |
string base64String = null; |
|
205 |
|
|
206 |
try |
|
207 |
{ |
|
208 |
float originalHeight = shape.Height; |
|
209 |
float originalWidth = shape.Width; |
|
210 |
shape.ScaleWidth(1.0f, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoScaleFrom.msoScaleFromTopLeft); |
|
211 |
|
|
212 |
// 이미지를 가져올 Shape이 그림인 경우 처리 |
|
213 |
shape.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap); |
|
214 |
|
|
215 |
if (Clipboard.ContainsImage()) |
|
216 |
{ |
|
217 |
// 클립보드에서 이미지 가져오기 |
|
218 |
using (Image clipboardImage = Clipboard.GetImage()) |
|
219 |
{ |
|
220 |
// 이미지 크기를 원래 크기로 되돌리기 |
|
221 |
|
|
222 |
// 이미지를 byte 배열로 변환 |
|
223 |
byte[] imageBytes; |
|
224 |
using (MemoryStream ms = new MemoryStream()) |
|
225 |
{ |
|
226 |
clipboardImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png); |
|
227 |
imageBytes = ms.ToArray(); |
|
228 |
|
|
229 |
// 이미지를 Base64 문자열로 변환 |
|
230 |
base64String = CompressString(Convert.ToBase64String(imageBytes)); |
|
231 |
imageBytes = null; |
|
232 |
} |
|
233 |
} |
|
234 |
|
|
235 |
|
|
236 |
shape.ScaleWidth(originalWidth / shape.Width, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoScaleFrom.msoScaleFromTopLeft); |
|
237 |
Clipboard.Clear(); |
|
238 |
} |
|
239 |
} |
|
240 |
catch (Exception ex) |
|
241 |
{ |
|
242 |
System.Diagnostics.Debug.WriteLine(ex); |
|
243 |
} |
|
244 |
|
|
245 |
// 이미지를 MSSQL에 저장 |
|
246 |
SqlCommand insertCommand = new SqlCommand(query, connection); |
|
247 |
insertCommand.Parameters.AddWithValue("@FileName", FILE_NAME); |
|
248 |
insertCommand.Parameters.AddWithValue("@worksheetName", worksheet.Name); |
|
249 |
insertCommand.Parameters.AddWithValue("@ColumnIndex", GetColumnIndex(location)); |
|
250 |
insertCommand.Parameters.AddWithValue("@RowIndex", GetRowIndex(location)); |
|
251 |
insertCommand.Parameters.AddWithValue("@TopLeftCell", location); |
|
252 |
insertCommand.Parameters.AddWithValue("@cellValue", base64String); |
|
253 |
insertCommand.Parameters.AddWithValue("@ObjectType", 1); |
|
254 |
|
|
255 |
insertCommand.ExecuteNonQuery(); |
|
256 |
} |
|
257 |
} |
|
258 |
|
|
259 |
shapes.Clear(); |
|
260 |
|
|
261 |
result = true; |
|
262 |
} |
|
263 |
catch (Exception) |
|
264 |
{ |
|
265 |
|
|
266 |
throw; |
|
267 |
} |
|
268 |
|
|
269 |
return result; |
|
270 |
} |
|
271 |
|
|
272 |
public static string CompressString(string str) |
|
273 |
{ |
|
274 |
string result = null; |
|
275 |
|
|
276 |
using (MemoryStream outStream = new MemoryStream()) |
|
277 |
{ |
|
278 |
using (GZipStream gzipStream = new GZipStream(outStream, CompressionMode.Compress)) |
|
279 |
using (MemoryStream srcStream = new MemoryStream(Encoding.UTF8.GetBytes(str))) |
|
280 |
srcStream.CopyTo(gzipStream); |
|
281 |
|
|
282 |
result = Convert.ToBase64String(outStream.ToArray()); |
|
283 |
} |
|
284 |
|
|
285 |
return result; |
|
286 |
} |
|
287 |
|
|
288 |
public static bool Export(Microsoft.Office.Interop.Excel.Worksheet worksheet) |
|
289 |
{ |
|
290 |
bool result = true; |
|
291 |
|
|
292 |
try |
|
293 |
{ |
|
294 |
var connectionStr = ConnectionDialog(); |
|
295 |
|
|
296 |
if (connectionStr != null) |
|
297 |
{ |
|
298 |
if (CreateTabile(connectionStr)) |
|
299 |
{ |
|
300 |
|
|
301 |
using (SqlConnection connection = new SqlConnection(connectionStr)) |
|
302 |
{ |
|
303 |
connection.Open(); |
|
304 |
Microsoft.Office.Interop.Excel.Range range = worksheet.UsedRange; |
|
305 |
|
|
306 |
// SQL INSERT 쿼리 작성 |
|
307 |
string query = $"select TopLeftCell,VALUE from {tableName}"; |
|
308 |
|
|
309 |
// SQL 쿼리 실행 |
|
310 |
SqlCommand command = new SqlCommand(query, connection); |
|
311 |
var read = command.ExecuteReader(); |
|
312 |
|
|
313 |
while (read.Read()) |
|
314 |
{ |
|
315 |
MessageBox.Show($"{read.GetString(0)} ; {read.GetString(1)}"); |
|
316 |
break; |
|
317 |
} |
|
318 |
|
|
319 |
connection.Close(); |
|
320 |
result = true; |
|
321 |
} |
|
322 |
} |
|
323 |
} |
|
324 |
} |
|
325 |
catch (Exception) |
|
326 |
{ |
|
327 |
|
|
328 |
throw; |
|
329 |
} |
|
330 |
|
|
331 |
return result; |
|
332 |
} |
|
333 |
} |
|
334 |
} |
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2ManagerImport.csproj | ||
---|---|---|
1 |
<Project ToolsVersion="16.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|
2 |
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> |
|
3 |
<!-- |
|
4 |
This section defines project-level properties. |
|
5 |
|
|
6 |
AssemblyName |
|
7 |
Name of the output assembly. |
|
8 |
Configuration |
|
9 |
Specifies a default value for debug. |
|
10 |
OutputType |
|
11 |
Must be "Library" for VSTO. |
|
12 |
Platform |
|
13 |
Specifies what CPU the output of this project can run on. |
|
14 |
NoStandardLibraries |
|
15 |
Set to "false" for VSTO. |
|
16 |
RootNamespace |
|
17 |
In C#, this specifies the namespace given to new files. In VB, all objects are |
|
18 |
wrapped in this namespace at runtime. |
|
19 |
--> |
|
20 |
<PropertyGroup> |
|
21 |
<ProjectTypeGuids>{BAA0C2D2-18E2-41B9-852F-F413020CAA33};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> |
|
22 |
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|
23 |
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
|
24 |
<ProjectGuid>{3477906E-C120-4FA6-B73D-93791283378A}</ProjectGuid> |
|
25 |
<OutputType>Library</OutputType> |
|
26 |
<NoStandardLibraries>false</NoStandardLibraries> |
|
27 |
<RootNamespace>ID2ManagerImport</RootNamespace> |
|
28 |
<AssemblyName>ID2ManagerImport</AssemblyName> |
|
29 |
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion> |
|
30 |
<DefineConstants>VSTO40</DefineConstants> |
|
31 |
<IsWebBootstrapper>False</IsWebBootstrapper> |
|
32 |
<BootstrapperEnabled>true</BootstrapperEnabled> |
|
33 |
<PublishUrl>게시\</PublishUrl> |
|
34 |
<InstallUrl /> |
|
35 |
<TargetCulture>ko</TargetCulture> |
|
36 |
<ApplicationVersion>1.0.0.4</ApplicationVersion> |
|
37 |
<AutoIncrementApplicationRevision>true</AutoIncrementApplicationRevision> |
|
38 |
<UpdateEnabled>false</UpdateEnabled> |
|
39 |
<UpdateInterval>0</UpdateInterval> |
|
40 |
<UpdateIntervalUnits>days</UpdateIntervalUnits> |
|
41 |
<ProductName>ID2ManagerImport</ProductName> |
|
42 |
<PublisherName /> |
|
43 |
<SupportUrl /> |
|
44 |
<FriendlyName>ID2ManagerImport</FriendlyName> |
|
45 |
<OfficeApplicationDescription /> |
|
46 |
<LoadBehavior>3</LoadBehavior> |
|
47 |
</PropertyGroup> |
|
48 |
<ItemGroup> |
|
49 |
<BootstrapperPackage Include=".NETFramework,Version=v4.8"> |
|
50 |
<Visible>False</Visible> |
|
51 |
<ProductName>Microsoft .NET Framework 4.8%28x86 및 x64%29</ProductName> |
|
52 |
<Install>true</Install> |
|
53 |
</BootstrapperPackage> |
|
54 |
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> |
|
55 |
<Visible>False</Visible> |
|
56 |
<ProductName>.NET Framework 3.5 SP1</ProductName> |
|
57 |
<Install>false</Install> |
|
58 |
</BootstrapperPackage> |
|
59 |
<BootstrapperPackage Include="Microsoft.VSTORuntime.4.0"> |
|
60 |
<Visible>False</Visible> |
|
61 |
<ProductName>Microsoft Visual Studio 2010 Tools for Office Runtime%28x86 및 x64%29</ProductName> |
|
62 |
<Install>true</Install> |
|
63 |
</BootstrapperPackage> |
|
64 |
</ItemGroup> |
|
65 |
<PropertyGroup> |
|
66 |
<!-- |
|
67 |
OfficeApplication |
|
68 |
Add-in host application |
|
69 |
--> |
|
70 |
<OfficeApplication>Excel</OfficeApplication> |
|
71 |
</PropertyGroup> |
|
72 |
<!-- |
|
73 |
This section defines properties that are set when the "Debug" configuration is selected. |
|
74 |
|
|
75 |
DebugSymbols |
|
76 |
If "true", create symbols (.pdb). If "false", do not create symbols. |
|
77 |
DefineConstants |
|
78 |
Constants defined for the preprocessor. |
|
79 |
EnableUnmanagedDebugging |
|
80 |
If "true", starting the debugger will attach both managed and unmanaged debuggers. |
|
81 |
Optimize |
|
82 |
If "true", optimize the build output. If "false", do not optimize. |
|
83 |
OutputPath |
|
84 |
Output path of project relative to the project file. |
|
85 |
WarningLevel |
|
86 |
Warning level for the compiler. |
|
87 |
--> |
|
88 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
|
89 |
<DebugSymbols>true</DebugSymbols> |
|
90 |
<DebugType>full</DebugType> |
|
91 |
<Optimize>false</Optimize> |
|
92 |
<OutputPath>bin\Debug\</OutputPath> |
|
93 |
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> |
|
94 |
<DefineConstants>$(DefineConstants);DEBUG;TRACE</DefineConstants> |
|
95 |
<WarningLevel>4</WarningLevel> |
|
96 |
<PlatformTarget>x64</PlatformTarget> |
|
97 |
</PropertyGroup> |
|
98 |
<!-- |
|
99 |
This section defines properties that are set when the "Release" configuration is selected. |
|
100 |
|
|
101 |
DebugSymbols |
|
102 |
If "true", create symbols (.pdb). If "false", do not create symbols. |
|
103 |
DefineConstants |
|
104 |
Constants defined for the preprocessor. |
|
105 |
EnableUnmanagedDebugging |
|
106 |
If "true", starting the debugger will attach both managed and unmanaged debuggers. |
|
107 |
Optimize |
|
108 |
If "true", optimize the build output. If "false", do not optimize. |
|
109 |
OutputPath |
|
110 |
Output path of project relative to the project file. |
|
111 |
WarningLevel |
|
112 |
Warning level for the compiler. |
|
113 |
--> |
|
114 |
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
|
115 |
<DebugType>pdbonly</DebugType> |
|
116 |
<Optimize>true</Optimize> |
|
117 |
<OutputPath>bin\Release\</OutputPath> |
|
118 |
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging> |
|
119 |
<DefineConstants>$(DefineConstants);TRACE</DefineConstants> |
|
120 |
<WarningLevel>4</WarningLevel> |
|
121 |
</PropertyGroup> |
|
122 |
<!-- |
|
123 |
This section specifies references for the project. |
|
124 |
--> |
|
125 |
<ItemGroup> |
|
126 |
<Reference Include="Accessibility" /> |
|
127 |
<Reference Include="System" /> |
|
128 |
<Reference Include="System.Data" /> |
|
129 |
<Reference Include="System.Drawing" /> |
|
130 |
<Reference Include="System.Windows.Forms" /> |
|
131 |
<Reference Include="System.Xml" /> |
|
132 |
<Reference Include="System.Core" /> |
|
133 |
<Reference Include="System.Xml.Linq" /> |
|
134 |
<Reference Include="System.Data.DataSetExtensions" /> |
|
135 |
<Reference Include="Microsoft.CSharp" /> |
|
136 |
</ItemGroup> |
|
137 |
<ItemGroup> |
|
138 |
<Reference Include="Microsoft.Office.Tools.v4.0.Framework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
|
139 |
<Private>False</Private> |
|
140 |
</Reference> |
|
141 |
<Reference Include="Microsoft.VisualStudio.Tools.Applications.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
|
142 |
<Private>False</Private> |
|
143 |
</Reference> |
|
144 |
<Reference Include="Microsoft.Office.Tools, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
|
145 |
<Private>False</Private> |
|
146 |
</Reference> |
|
147 |
<Reference Include="Microsoft.Office.Tools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
|
148 |
<Private>False</Private> |
|
149 |
</Reference> |
|
150 |
<Reference Include="Microsoft.Office.Tools.Excel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
|
151 |
<Private>False</Private> |
|
152 |
</Reference> |
|
153 |
</ItemGroup> |
|
154 |
<ItemGroup> |
|
155 |
<Reference Include="Microsoft.Office.Tools.Common.v4.0.Utilities, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> |
|
156 |
<Private>True</Private> |
|
157 |
</Reference> |
|
158 |
</ItemGroup> |
|
159 |
<ItemGroup> |
|
160 |
<Reference Include="Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"> |
|
161 |
<Private>False</Private> |
|
162 |
<EmbedInteropTypes>true</EmbedInteropTypes> |
|
163 |
</Reference> |
|
164 |
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"> |
|
165 |
<Private>False</Private> |
|
166 |
<EmbedInteropTypes>true</EmbedInteropTypes> |
|
167 |
</Reference> |
|
168 |
<Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> |
|
169 |
<Private>False</Private> |
|
170 |
</Reference> |
|
171 |
</ItemGroup> |
|
172 |
<!-- |
|
173 |
This section defines the user source files that are part of the project. |
|
174 |
|
|
175 |
A "Compile" element specifies a source file to compile. |
|
176 |
An "EmbeddedResource" element specifies an .resx file for embedded resources. |
|
177 |
A "None" element specifies a file that is not to be passed to the compiler (for instance, |
|
178 |
a text file or XML file). |
|
179 |
The "AppDesigner" element specifies the directory where the application properties files |
|
180 |
can be found. |
|
181 |
--> |
|
182 |
<ItemGroup> |
|
183 |
<Compile Include="DataImport.cs" /> |
|
184 |
<Compile Include="ID2Ribbon.cs"> |
|
185 |
<SubType>Component</SubType> |
|
186 |
</Compile> |
|
187 |
<Compile Include="ID2Ribbon.Designer.cs"> |
|
188 |
<DependentUpon>ID2Ribbon.cs</DependentUpon> |
|
189 |
</Compile> |
|
190 |
<Compile Include="Properties\AssemblyInfo.cs"> |
|
191 |
<SubType>Code</SubType> |
|
192 |
</Compile> |
|
193 |
<EmbeddedResource Include="ID2Ribbon.resx"> |
|
194 |
<DependentUpon>ID2Ribbon.cs</DependentUpon> |
|
195 |
</EmbeddedResource> |
|
196 |
<EmbeddedResource Include="Properties\Resources.resx"> |
|
197 |
<Generator>ResXFileCodeGenerator</Generator> |
|
198 |
<LastGenOutput>Resources.Designer.cs</LastGenOutput> |
|
199 |
<SubType>Designer</SubType> |
|
200 |
</EmbeddedResource> |
|
201 |
<Compile Include="Properties\Resources.Designer.cs"> |
|
202 |
<AutoGen>True</AutoGen> |
|
203 |
<DependentUpon>Resources.resx</DependentUpon> |
|
204 |
</Compile> |
|
205 |
<None Include="ID2ManagerImport_TemporaryKey.pfx" /> |
|
206 |
<None Include="Properties\Settings.settings"> |
|
207 |
<Generator>SettingsSingleFileGenerator</Generator> |
|
208 |
<LastGenOutput>Settings.Designer.cs</LastGenOutput> |
|
209 |
</None> |
|
210 |
<Compile Include="Properties\Settings.Designer.cs"> |
|
211 |
<AutoGen>True</AutoGen> |
|
212 |
<DependentUpon>Settings.settings</DependentUpon> |
|
213 |
</Compile> |
|
214 |
<Compile Include="ThisAddIn.cs"> |
|
215 |
<SubType>Code</SubType> |
|
216 |
</Compile> |
|
217 |
<None Include="ThisAddIn.Designer.xml"> |
|
218 |
<DependentUpon>ThisAddIn.cs</DependentUpon> |
|
219 |
</None> |
|
220 |
<Compile Include="ThisAddIn.Designer.cs"> |
|
221 |
<DependentUpon>ThisAddIn.Designer.xml</DependentUpon> |
|
222 |
</Compile> |
|
223 |
<AppDesigner Include="Properties\" /> |
|
224 |
</ItemGroup> |
|
225 |
<ItemGroup> |
|
226 |
<PackageReference Include="MsSQLDialog"> |
|
227 |
<Version>1.0.0</Version> |
|
228 |
</PackageReference> |
|
229 |
</ItemGroup> |
|
230 |
<PropertyGroup> |
|
231 |
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> |
|
232 |
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> |
|
233 |
</PropertyGroup> |
|
234 |
<PropertyGroup> |
|
235 |
<SignManifests>true</SignManifests> |
|
236 |
</PropertyGroup> |
|
237 |
<PropertyGroup> |
|
238 |
<ManifestKeyFile>ID2ManagerImport_TemporaryKey.pfx</ManifestKeyFile> |
|
239 |
</PropertyGroup> |
|
240 |
<PropertyGroup> |
|
241 |
<ManifestCertificateThumbprint>EF3F3E89EB1A23160BB3D1B0635AF73C25DFB484</ManifestCertificateThumbprint> |
|
242 |
</PropertyGroup> |
|
243 |
<!-- Include the build rules for a C# project. --> |
|
244 |
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> |
|
245 |
<!-- Include additional build rules for an Office application add-in. --> |
|
246 |
<Import Project="$(VSToolsPath)\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" Condition="'$(VSToolsPath)' != ''" /> |
|
247 |
<!-- This section defines VSTO properties that describe the host-changeable project properties. --> |
|
248 |
<ProjectExtensions> |
|
249 |
<VisualStudio> |
|
250 |
<FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}"> |
|
251 |
<ProjectProperties HostName="Excel" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Excel" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\16.0\Excel\InstallRoot\Path#excel.exe" DebugInfoCommandLine="/x" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" /> |
|
252 |
<Host Name="Excel" GeneratedCodeNamespace="ID2ManagerImport" PublishedHash="69C324AB27932AA2FBF2B7EA72250886FF164DE6" IconIndex="0"> |
|
253 |
<HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" PublishedHash="82537F06F54D5DD73334C8FD08F4F6A9937971E0" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" /> |
|
254 |
</Host> |
|
255 |
</FlavorProperties> |
|
256 |
</VisualStudio> |
|
257 |
</ProjectExtensions> |
|
258 |
</Project> |
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2ManagerImport.sln | ||
---|---|---|
1 |
|
|
2 |
Microsoft Visual Studio Solution File, Format Version 12.00 |
|
3 |
# Visual Studio Version 16 |
|
4 |
VisualStudioVersion = 16.0.33423.256 |
|
5 |
MinimumVisualStudioVersion = 10.0.40219.1 |
|
6 |
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ID2ManagerImport", "ID2ManagerImport.csproj", "{3477906E-C120-4FA6-B73D-93791283378A}" |
|
7 |
EndProject |
|
8 |
Global |
|
9 |
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
|
10 |
Debug|Any CPU = Debug|Any CPU |
|
11 |
Release|Any CPU = Release|Any CPU |
|
12 |
EndGlobalSection |
|
13 |
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
|
14 |
{3477906E-C120-4FA6-B73D-93791283378A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
|
15 |
{3477906E-C120-4FA6-B73D-93791283378A}.Debug|Any CPU.Build.0 = Debug|Any CPU |
|
16 |
{3477906E-C120-4FA6-B73D-93791283378A}.Release|Any CPU.ActiveCfg = Release|Any CPU |
|
17 |
{3477906E-C120-4FA6-B73D-93791283378A}.Release|Any CPU.Build.0 = Release|Any CPU |
|
18 |
EndGlobalSection |
|
19 |
GlobalSection(SolutionProperties) = preSolution |
|
20 |
HideSolutionNode = FALSE |
|
21 |
EndGlobalSection |
|
22 |
GlobalSection(ExtensibilityGlobals) = postSolution |
|
23 |
SolutionGuid = {7271D6F3-241B-47EE-A9A2-999C578F11C0} |
|
24 |
EndGlobalSection |
|
25 |
EndGlobal |
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2Ribbon.Designer.cs | ||
---|---|---|
1 |
|
|
2 |
namespace ID2ManagerImport |
|
3 |
{ |
|
4 |
partial class ID2Ribbon : Microsoft.Office.Tools.Ribbon.RibbonBase |
|
5 |
{ |
|
6 |
/// <summary> |
|
7 |
/// 필수 디자이너 변수입니다. |
|
8 |
/// </summary> |
|
9 |
private System.ComponentModel.IContainer components = null; |
|
10 |
|
|
11 |
public ID2Ribbon() |
|
12 |
: base(Globals.Factory.GetRibbonFactory()) |
|
13 |
{ |
|
14 |
InitializeComponent(); |
|
15 |
} |
|
16 |
|
|
17 |
/// <summary> |
|
18 |
/// 사용 중인 모든 리소스를 정리합니다. |
|
19 |
/// </summary> |
|
20 |
/// <param name="disposing">관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다.</param> |
|
21 |
protected override void Dispose(bool disposing) |
|
22 |
{ |
|
23 |
if (disposing && (components != null)) |
|
24 |
{ |
|
25 |
components.Dispose(); |
|
26 |
} |
|
27 |
base.Dispose(disposing); |
|
28 |
} |
|
29 |
|
|
30 |
#region 구성 요소 디자이너에서 생성한 코드 |
|
31 |
|
|
32 |
/// <summary> |
|
33 |
/// 디자이너 지원에 필요한 메서드입니다. |
|
34 |
/// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. |
|
35 |
/// </summary> |
|
36 |
private void InitializeComponent() |
|
37 |
{ |
|
38 |
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ID2Ribbon)); |
|
39 |
this.tab1 = this.Factory.CreateRibbonTab(); |
|
40 |
this.group1 = this.Factory.CreateRibbonGroup(); |
|
41 |
this.btnSend = this.Factory.CreateRibbonButton(); |
|
42 |
this.btLoad = this.Factory.CreateRibbonButton(); |
|
43 |
this.tab1.SuspendLayout(); |
|
44 |
this.group1.SuspendLayout(); |
|
45 |
this.SuspendLayout(); |
|
46 |
// |
|
47 |
// tab1 |
|
48 |
// |
|
49 |
this.tab1.ControlId.ControlIdType = Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office; |
|
50 |
this.tab1.Groups.Add(this.group1); |
|
51 |
this.tab1.Label = "TabAddIns"; |
|
52 |
this.tab1.Name = "tab1"; |
|
53 |
// |
|
54 |
// group1 |
|
55 |
// |
|
56 |
this.group1.Items.Add(this.btnSend); |
|
57 |
this.group1.Items.Add(this.btLoad); |
|
58 |
this.group1.Label = "ID2 Manager"; |
|
59 |
this.group1.Name = "group1"; |
|
60 |
// |
|
61 |
// btnSend |
|
62 |
// |
|
63 |
this.btnSend.Image = ((System.Drawing.Image)(resources.GetObject("btnSend.Image"))); |
|
64 |
this.btnSend.Label = "Send Data"; |
|
65 |
this.btnSend.Name = "btnSend"; |
|
66 |
this.btnSend.ShowImage = true; |
|
67 |
this.btnSend.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btnSend_Click); |
|
68 |
// |
|
69 |
// btLoad |
|
70 |
// |
|
71 |
this.btLoad.Label = "Get Data"; |
|
72 |
this.btLoad.Name = "btLoad"; |
|
73 |
this.btLoad.ShowImage = true; |
|
74 |
this.btLoad.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler(this.btLoad_Click); |
|
75 |
// |
|
76 |
// ID2Ribbon |
|
77 |
// |
|
78 |
this.Name = "ID2Ribbon"; |
|
79 |
this.RibbonType = "Microsoft.Excel.Workbook"; |
|
80 |
this.Tabs.Add(this.tab1); |
|
81 |
this.Load += new Microsoft.Office.Tools.Ribbon.RibbonUIEventHandler(this.ID2Ribbon_Load); |
|
82 |
this.tab1.ResumeLayout(false); |
|
83 |
this.tab1.PerformLayout(); |
|
84 |
this.group1.ResumeLayout(false); |
|
85 |
this.group1.PerformLayout(); |
|
86 |
this.ResumeLayout(false); |
|
87 |
|
|
88 |
} |
|
89 |
|
|
90 |
#endregion |
|
91 |
|
|
92 |
internal Microsoft.Office.Tools.Ribbon.RibbonTab tab1; |
|
93 |
internal Microsoft.Office.Tools.Ribbon.RibbonGroup group1; |
|
94 |
internal Microsoft.Office.Tools.Ribbon.RibbonButton btnSend; |
|
95 |
internal Microsoft.Office.Tools.Ribbon.RibbonButton btLoad; |
|
96 |
} |
|
97 |
|
|
98 |
partial class ThisRibbonCollection |
|
99 |
{ |
|
100 |
internal ID2Ribbon ID2Ribbon |
|
101 |
{ |
|
102 |
get { return this.GetRibbon<ID2Ribbon>(); } |
|
103 |
} |
|
104 |
} |
|
105 |
} |
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2Ribbon.cs | ||
---|---|---|
1 |
using Microsoft.Office.Tools.Ribbon; |
|
2 |
using System; |
|
3 |
using System.Collections.Generic; |
|
4 |
using System.Linq; |
|
5 |
using System.Text; |
|
6 |
using System.Windows.Forms; |
|
7 |
|
|
8 |
namespace ID2ManagerImport |
|
9 |
{ |
|
10 |
public partial class ID2Ribbon |
|
11 |
{ |
|
12 |
private void ID2Ribbon_Load(object sender, RibbonUIEventArgs e) |
|
13 |
{ |
|
14 |
|
|
15 |
} |
|
16 |
|
|
17 |
private void btnSend_Click(object sender, RibbonControlEventArgs e) |
|
18 |
{ |
|
19 |
Microsoft.Office.Interop.Excel.Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet; |
|
20 |
|
|
21 |
|
|
22 |
if (DataManager.Import(Globals.ThisAddIn.Application.ActiveWorkbook.Name, sheet)) |
|
23 |
{ |
|
24 |
MessageBox.Show("Send data Ok"); |
|
25 |
} |
|
26 |
} |
|
27 |
|
|
28 |
private void btLoad_Click(object sender, RibbonControlEventArgs e) |
|
29 |
{ |
|
30 |
Microsoft.Office.Interop.Excel.Worksheet sheet = Globals.ThisAddIn.Application.ActiveSheet; |
|
31 |
|
|
32 |
if (DataManager.Export(sheet)) |
|
33 |
{ |
|
34 |
MessageBox.Show("Read Ok"); |
|
35 |
} |
|
36 |
} |
|
37 |
|
|
38 |
} |
|
39 |
} |
ID2.Manager/ExcelAddin/ID2ManagerImport/ID2Ribbon.resx | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<root> |
|
3 |
<!-- |
|
4 |
Microsoft ResX Schema |
|
5 |
|
|
6 |
Version 2.0 |
|
7 |
|
|
8 |
The primary goals of this format is to allow a simple XML format |
|
9 |
that is mostly human readable. The generation and parsing of the |
|
10 |
various data types are done through the TypeConverter classes |
|
11 |
associated with the data types. |
|
12 |
|
|
13 |
Example: |
|
14 |
|
|
15 |
... ado.net/XML headers & schema ... |
|
16 |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
|
17 |
<resheader name="version">2.0</resheader> |
|
18 |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
|
19 |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
|
20 |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
|
21 |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
|
22 |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
|
23 |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
|
24 |
</data> |
|
25 |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
|
26 |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
|
27 |
<comment>This is a comment</comment> |
|
28 |
</data> |
|
29 |
|
|
30 |
There are any number of "resheader" rows that contain simple |
|
31 |
name/value pairs. |
|
32 |
|
|
33 |
Each data row contains a name, and value. The row also contains a |
|
34 |
type or mimetype. Type corresponds to a .NET class that support |
|
35 |
text/value conversion through the TypeConverter architecture. |
|
36 |
Classes that don't support this are serialized and stored with the |
|
37 |
mimetype set. |
|
38 |
|
|
39 |
The mimetype is used for serialized objects, and tells the |
|
40 |
ResXResourceReader how to depersist the object. This is currently not |
|
41 |
extensible. For a given mimetype the value must be set accordingly: |
|
42 |
|
|
43 |
Note - application/x-microsoft.net.object.binary.base64 is the format |
|
44 |
that the ResXResourceWriter will generate, however the reader can |
|
45 |
read any of the formats listed below. |
|
46 |
|
|
47 |
mimetype: application/x-microsoft.net.object.binary.base64 |
|
48 |
value : The object must be serialized with |
|
49 |
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
|
50 |
: and then encoded with base64 encoding. |
|
51 |
|
|
52 |
mimetype: application/x-microsoft.net.object.soap.base64 |
|
53 |
value : The object must be serialized with |
|
54 |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
|
55 |
: and then encoded with base64 encoding. |
|
56 |
|
|
57 |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
|
58 |
value : The object must be serialized into a byte array |
|
59 |
: using a System.ComponentModel.TypeConverter |
|
60 |
: and then encoded with base64 encoding. |
|
61 |
--> |
|
62 |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
|
63 |
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
|
64 |
<xsd:element name="root" msdata:IsDataSet="true"> |
|
65 |
<xsd:complexType> |
|
66 |
<xsd:choice maxOccurs="unbounded"> |
|
67 |
<xsd:element name="metadata"> |
|
68 |
<xsd:complexType> |
|
69 |
<xsd:sequence> |
|
70 |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
|
71 |
</xsd:sequence> |
|
72 |
<xsd:attribute name="name" use="required" type="xsd:string" /> |
|
73 |
<xsd:attribute name="type" type="xsd:string" /> |
|
74 |
<xsd:attribute name="mimetype" type="xsd:string" /> |
|
75 |
<xsd:attribute ref="xml:space" /> |
|
76 |
</xsd:complexType> |
|
77 |
</xsd:element> |
|
78 |
<xsd:element name="assembly"> |
|
79 |
<xsd:complexType> |
|
80 |
<xsd:attribute name="alias" type="xsd:string" /> |
|
81 |
<xsd:attribute name="name" type="xsd:string" /> |
|
82 |
</xsd:complexType> |
|
83 |
</xsd:element> |
|
84 |
<xsd:element name="data"> |
|
85 |
<xsd:complexType> |
|
86 |
<xsd:sequence> |
|
87 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
88 |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
|
89 |
</xsd:sequence> |
|
90 |
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
|
91 |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
|
92 |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
|
93 |
<xsd:attribute ref="xml:space" /> |
|
94 |
</xsd:complexType> |
|
95 |
</xsd:element> |
|
96 |
<xsd:element name="resheader"> |
|
97 |
<xsd:complexType> |
|
98 |
<xsd:sequence> |
|
99 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
100 |
</xsd:sequence> |
|
101 |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
|
102 |
</xsd:complexType> |
|
103 |
</xsd:element> |
|
104 |
</xsd:choice> |
|
105 |
</xsd:complexType> |
|
106 |
</xsd:element> |
|
107 |
</xsd:schema> |
|
108 |
<resheader name="resmimetype"> |
|
109 |
<value>text/microsoft-resx</value> |
|
110 |
</resheader> |
|
111 |
<resheader name="version"> |
|
112 |
<value>2.0</value> |
|
113 |
</resheader> |
|
114 |
<resheader name="reader"> |
|
115 |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
116 |
</resheader> |
|
117 |
<resheader name="writer"> |
|
118 |
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
119 |
</resheader> |
|
120 |
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> |
|
121 |
<data name="btnSend.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
|
122 |
<value> |
|
123 |
/9j/4AAQSkZJRgABAQEAYABgAAD/4QBiRXhpZgAATU0AKgAAAAgAAgE7AAIAAAARAAAAJpydAAEAAAAi |
|
124 |
AAAAOAAAAABLaW0gdGFlc3VuZyBLVFMuAABLAGkAbQAgAHQAYQBlAHMAdQBuAGcAIABLAFQAUwAuAAAA |
|
125 |
/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxog |
|
126 |
LzMvKjInKisq/9sAQwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq |
|
127 |
KioqKioqKioqKioqKioqKioq/8AAEQgA9ADuAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAAB |
|
128 |
AgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEV |
|
129 |
UtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 |
|
130 |
g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn |
|
131 |
6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQH |
|
132 |
BQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1 |
|
133 |
Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWm |
|
134 |
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMR |
|
135 |
AD8A+kaKKKACiiigAooooAKKKKACiiigBrUhOBnrnsafSYoAaBn6Uk88NpbvPcypDDGpZ5JGCqoHUkno |
|
136 |
KS4uIbO2kuLqVIYYlLvI5wqgdSTXzh8TvidN4uuW03SXeHRon/3WuSOjN/s9wv4nnAAB6vL8Z/BcV6IP |
|
137 |
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 |
|
211 |
UUUAFFFFABRRRQAUUUUABpnU0UUAf//Z |
|
212 |
</value> |
|
213 |
</data> |
|
214 |
</root> |
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/AssemblyInfo.cs | ||
---|---|---|
1 |
using System.Reflection; |
|
2 |
using System.Runtime.CompilerServices; |
|
3 |
using System.Runtime.InteropServices; |
|
4 |
using System.Security; |
|
5 |
|
|
6 |
// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 |
|
7 |
// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 |
|
8 |
// 이러한 특성 값을 변경하세요. |
|
9 |
[assembly: AssemblyTitle("ID2ManagerImport")] |
|
10 |
[assembly: AssemblyDescription("")] |
|
11 |
[assembly: AssemblyConfiguration("")] |
|
12 |
[assembly: AssemblyCompany("")] |
|
13 |
[assembly: AssemblyProduct("ID2ManagerImport")] |
|
14 |
[assembly: AssemblyCopyright("Copyright © 2023")] |
|
15 |
[assembly: AssemblyTrademark("")] |
|
16 |
[assembly: AssemblyCulture("")] |
|
17 |
|
|
18 |
// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 |
|
19 |
// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 |
|
20 |
// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. |
|
21 |
[assembly: ComVisible(false)] |
|
22 |
|
|
23 |
// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. |
|
24 |
[assembly: Guid("c76dfd44-a403-4555-afa5-c2c517f1b794")] |
|
25 |
|
|
26 |
// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. |
|
27 |
// |
|
28 |
// 주 버전 |
|
29 |
// 부 버전 |
|
30 |
// 빌드 번호 |
|
31 |
// 수정 버전 |
|
32 |
// |
|
33 |
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 |
|
34 |
// 지정되도록 할 수 있습니다. |
|
35 |
// [assembly: AssemblyVersion("1.0.*")] |
|
36 |
[assembly: AssemblyVersion("1.0.0.0")] |
|
37 |
[assembly: AssemblyFileVersion("1.0.0.0")] |
|
38 |
|
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Resources.Designer.cs | ||
---|---|---|
1 |
//------------------------------------------------------------------------------ |
|
2 |
// <auto-generated> |
|
3 |
// This code was generated by a tool. |
|
4 |
// Runtime Version:4.0.30319.42000 |
|
5 |
// |
|
6 |
// Changes to this file may cause incorrect behavior and will be lost if |
|
7 |
// the code is regenerated. |
|
8 |
// </auto-generated> |
|
9 |
//------------------------------------------------------------------------------ |
|
10 |
|
|
11 |
namespace ID2ManagerImport.Properties { |
|
12 |
|
|
13 |
|
|
14 |
/// <summary> |
|
15 |
/// A strongly-typed resource class, for looking up localized strings, etc. |
|
16 |
/// </summary> |
|
17 |
// This class was auto-generated by the StronglyTypedResourceBuilder |
|
18 |
// class via a tool like ResGen or Visual Studio. |
|
19 |
// To add or remove a member, edit your .ResX file then rerun ResGen |
|
20 |
// with the /str option, or rebuild your VS project. |
|
21 |
|
|
22 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
23 |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
|
24 |
internal class Resources { |
|
25 |
|
|
26 |
private static global::System.Resources.ResourceManager resourceMan; |
|
27 |
|
|
28 |
private static global::System.Globalization.CultureInfo resourceCulture; |
|
29 |
|
|
30 |
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
|
31 |
internal Resources() { |
|
32 |
} |
|
33 |
|
|
34 |
/// <summary> |
|
35 |
/// Returns the cached ResourceManager instance used by this class. |
|
36 |
/// </summary> |
|
37 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
38 |
internal static global::System.Resources.ResourceManager ResourceManager { |
|
39 |
get { |
|
40 |
if (object.ReferenceEquals(resourceMan, null)) { |
|
41 |
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ID2ManagerImport.Properties.Resources", typeof(Resources).Assembly); |
|
42 |
resourceMan = temp; |
|
43 |
} |
|
44 |
return resourceMan; |
|
45 |
} |
|
46 |
} |
|
47 |
|
|
48 |
/// <summary> |
|
49 |
/// Overrides the current thread's CurrentUICulture property for all |
|
50 |
/// resource lookups using this strongly typed resource class. |
|
51 |
/// </summary> |
|
52 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
53 |
internal static global::System.Globalization.CultureInfo Culture { |
|
54 |
get { |
|
55 |
return resourceCulture; |
|
56 |
} |
|
57 |
set { |
|
58 |
resourceCulture = value; |
|
59 |
} |
|
60 |
} |
|
61 |
} |
|
62 |
} |
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Resources.resx | ||
---|---|---|
1 |
<?xml version="1.0" encoding="utf-8"?> |
|
2 |
<root> |
|
3 |
<!-- |
|
4 |
Microsoft ResX Schema |
|
5 |
|
|
6 |
Version 2.0 |
|
7 |
|
|
8 |
The primary goals of this format is to allow a simple XML format |
|
9 |
that is mostly human readable. The generation and parsing of the |
|
10 |
various data types are done through the TypeConverter classes |
|
11 |
associated with the data types. |
|
12 |
|
|
13 |
Example: |
|
14 |
|
|
15 |
... ado.net/XML headers & schema ... |
|
16 |
<resheader name="resmimetype">text/microsoft-resx</resheader> |
|
17 |
<resheader name="version">2.0</resheader> |
|
18 |
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
|
19 |
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
|
20 |
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
|
21 |
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
|
22 |
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
|
23 |
<value>[base64 mime encoded serialized .NET Framework object]</value> |
|
24 |
</data> |
|
25 |
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
|
26 |
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
|
27 |
<comment>This is a comment</comment> |
|
28 |
</data> |
|
29 |
|
|
30 |
There are any number of "resheader" rows that contain simple |
|
31 |
name/value pairs. |
|
32 |
|
|
33 |
Each data row contains a name, and value. The row also contains a |
|
34 |
type or mimetype. Type corresponds to a .NET class that support |
|
35 |
text/value conversion through the TypeConverter architecture. |
|
36 |
Classes that don't support this are serialized and stored with the |
|
37 |
mimetype set. |
|
38 |
|
|
39 |
The mimetype is used for serialized objects, and tells the |
|
40 |
ResXResourceReader how to depersist the object. This is currently not |
|
41 |
extensible. For a given mimetype the value must be set accordingly: |
|
42 |
|
|
43 |
Note - application/x-microsoft.net.object.binary.base64 is the format |
|
44 |
that the ResXResourceWriter will generate, however the reader can |
|
45 |
read any of the formats listed below. |
|
46 |
|
|
47 |
mimetype: application/x-microsoft.net.object.binary.base64 |
|
48 |
value : The object must be serialized with |
|
49 |
: System.Serialization.Formatters.Binary.BinaryFormatter |
|
50 |
: and then encoded with base64 encoding. |
|
51 |
|
|
52 |
mimetype: application/x-microsoft.net.object.soap.base64 |
|
53 |
value : The object must be serialized with |
|
54 |
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
|
55 |
: and then encoded with base64 encoding. |
|
56 |
|
|
57 |
mimetype: application/x-microsoft.net.object.bytearray.base64 |
|
58 |
value : The object must be serialized into a byte array |
|
59 |
: using a System.ComponentModel.TypeConverter |
|
60 |
: and then encoded with base64 encoding. |
|
61 |
--> |
|
62 |
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
|
63 |
<xsd:element name="root" msdata:IsDataSet="true"> |
|
64 |
<xsd:complexType> |
|
65 |
<xsd:choice maxOccurs="unbounded"> |
|
66 |
<xsd:element name="metadata"> |
|
67 |
<xsd:complexType> |
|
68 |
<xsd:sequence> |
|
69 |
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
|
70 |
</xsd:sequence> |
|
71 |
<xsd:attribute name="name" type="xsd:string" /> |
|
72 |
<xsd:attribute name="type" type="xsd:string" /> |
|
73 |
<xsd:attribute name="mimetype" type="xsd:string" /> |
|
74 |
</xsd:complexType> |
|
75 |
</xsd:element> |
|
76 |
<xsd:element name="assembly"> |
|
77 |
<xsd:complexType> |
|
78 |
<xsd:attribute name="alias" type="xsd:string" /> |
|
79 |
<xsd:attribute name="name" type="xsd:string" /> |
|
80 |
</xsd:complexType> |
|
81 |
</xsd:element> |
|
82 |
<xsd:element name="data"> |
|
83 |
<xsd:complexType> |
|
84 |
<xsd:sequence> |
|
85 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
86 |
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
|
87 |
</xsd:sequence> |
|
88 |
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
|
89 |
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
|
90 |
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
|
91 |
</xsd:complexType> |
|
92 |
</xsd:element> |
|
93 |
<xsd:element name="resheader"> |
|
94 |
<xsd:complexType> |
|
95 |
<xsd:sequence> |
|
96 |
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
|
97 |
</xsd:sequence> |
|
98 |
<xsd:attribute name="name" type="xsd:string" use="required" /> |
|
99 |
</xsd:complexType> |
|
100 |
</xsd:element> |
|
101 |
</xsd:choice> |
|
102 |
</xsd:complexType> |
|
103 |
</xsd:element> |
|
104 |
</xsd:schema> |
|
105 |
<resheader name="resmimetype"> |
|
106 |
<value>text/microsoft-resx</value> |
|
107 |
</resheader> |
|
108 |
<resheader name="version"> |
|
109 |
<value>2.0</value> |
|
110 |
</resheader> |
|
111 |
<resheader name="reader"> |
|
112 |
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
113 |
</resheader> |
|
114 |
<resheader name="writer"> |
|
115 |
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
|
116 |
</resheader> |
|
117 |
</root> |
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Settings.Designer.cs | ||
---|---|---|
1 |
//------------------------------------------------------------------------------ |
|
2 |
// <auto-generated> |
|
3 |
// This code was generated by a tool. |
|
4 |
// Runtime Version:4.0.30319.42000 |
|
5 |
// |
|
6 |
// Changes to this file may cause incorrect behavior and will be lost if |
|
7 |
// the code is regenerated. |
|
8 |
// </auto-generated> |
|
9 |
//------------------------------------------------------------------------------ |
|
10 |
|
|
11 |
namespace ID2ManagerImport.Properties { |
|
12 |
|
|
13 |
|
|
14 |
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
|
15 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.0.0.0")] |
|
16 |
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { |
|
17 |
|
|
18 |
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
|
19 |
|
|
20 |
public static Settings Default { |
|
21 |
get { |
|
22 |
return defaultInstance; |
|
23 |
} |
|
24 |
} |
|
25 |
} |
|
26 |
} |
ID2.Manager/ExcelAddin/ID2ManagerImport/Properties/Settings.settings | ||
---|---|---|
1 |
<?xml version='1.0' encoding='utf-8'?> |
|
2 |
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> |
|
3 |
<Profiles> |
|
4 |
<Profile Name="(Default)" /> |
|
5 |
</Profiles> |
|
6 |
<Settings /> |
|
7 |
</SettingsFile> |
ID2.Manager/ExcelAddin/ID2ManagerImport/ThisAddIn.Designer.cs | ||
---|---|---|
1 |
//------------------------------------------------------------------------------ |
|
2 |
// <auto-generated> |
|
3 |
// This code was generated by a tool. |
|
4 |
// Runtime Version:4.0.30319.42000 |
|
5 |
// |
|
6 |
// Changes to this file may cause incorrect behavior and will be lost if |
|
7 |
// the code is regenerated. |
|
8 |
// </auto-generated> |
|
9 |
//------------------------------------------------------------------------------ |
|
10 |
|
|
11 |
#pragma warning disable 414 |
|
12 |
namespace ID2ManagerImport { |
|
13 |
|
|
14 |
|
|
15 |
/// |
|
16 |
[Microsoft.VisualStudio.Tools.Applications.Runtime.StartupObjectAttribute(0)] |
|
17 |
[global::System.Security.Permissions.PermissionSetAttribute(global::System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")] |
|
18 |
public sealed partial class ThisAddIn : Microsoft.Office.Tools.AddInBase { |
|
19 |
|
|
20 |
internal Microsoft.Office.Tools.CustomTaskPaneCollection CustomTaskPanes; |
|
21 |
|
|
22 |
internal Microsoft.Office.Tools.SmartTagCollection VstoSmartTags; |
|
23 |
|
|
24 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
25 |
private global::System.Object missing = global::System.Type.Missing; |
|
26 |
|
|
27 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
28 |
internal Microsoft.Office.Interop.Excel.Application Application; |
|
29 |
|
|
30 |
/// |
|
31 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
32 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
33 |
public ThisAddIn(global::Microsoft.Office.Tools.Excel.ApplicationFactory factory, global::System.IServiceProvider serviceProvider) : |
|
34 |
base(factory, serviceProvider, "AddIn", "ThisAddIn") { |
|
35 |
Globals.Factory = factory; |
|
36 |
} |
|
37 |
|
|
38 |
/// |
|
39 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
40 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
41 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
42 |
protected override void Initialize() { |
|
43 |
base.Initialize(); |
|
44 |
this.Application = this.GetHostItem<Microsoft.Office.Interop.Excel.Application>(typeof(Microsoft.Office.Interop.Excel.Application), "Application"); |
|
45 |
Globals.ThisAddIn = this; |
|
46 |
global::System.Windows.Forms.Application.EnableVisualStyles(); |
|
47 |
this.InitializeCachedData(); |
|
48 |
this.InitializeControls(); |
|
49 |
this.InitializeComponents(); |
|
50 |
this.InitializeData(); |
|
51 |
} |
|
52 |
|
|
53 |
/// |
|
54 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
55 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
56 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
57 |
protected override void FinishInitialization() { |
|
58 |
this.InternalStartup(); |
|
59 |
this.OnStartup(); |
|
60 |
} |
|
61 |
|
|
62 |
/// |
|
63 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
64 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
65 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
66 |
protected override void InitializeDataBindings() { |
|
67 |
this.BeginInitialization(); |
|
68 |
this.BindToData(); |
|
69 |
this.EndInitialization(); |
|
70 |
} |
|
71 |
|
|
72 |
/// |
|
73 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
74 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
75 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
76 |
private void InitializeCachedData() { |
|
77 |
if ((this.DataHost == null)) { |
|
78 |
return; |
|
79 |
} |
|
80 |
if (this.DataHost.IsCacheInitialized) { |
|
81 |
this.DataHost.FillCachedData(this); |
|
82 |
} |
|
83 |
} |
|
84 |
|
|
85 |
/// |
|
86 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
87 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
88 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
89 |
private void InitializeData() { |
|
90 |
} |
|
91 |
|
|
92 |
/// |
|
93 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
94 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
95 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
96 |
private void BindToData() { |
|
97 |
} |
|
98 |
|
|
99 |
/// |
|
100 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
101 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
102 |
private void StartCaching(string MemberName) { |
|
103 |
this.DataHost.StartCaching(this, MemberName); |
|
104 |
} |
|
105 |
|
|
106 |
/// |
|
107 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
108 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
109 |
private void StopCaching(string MemberName) { |
|
110 |
this.DataHost.StopCaching(this, MemberName); |
|
111 |
} |
|
112 |
|
|
113 |
/// |
|
114 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
115 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
116 |
private bool IsCached(string MemberName) { |
|
117 |
return this.DataHost.IsCached(this, MemberName); |
|
118 |
} |
|
119 |
|
|
120 |
/// |
|
121 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
122 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
123 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
124 |
private void BeginInitialization() { |
|
125 |
this.BeginInit(); |
|
126 |
this.CustomTaskPanes.BeginInit(); |
|
127 |
this.VstoSmartTags.BeginInit(); |
|
128 |
} |
|
129 |
|
|
130 |
/// |
|
131 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
132 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
133 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
134 |
private void EndInitialization() { |
|
135 |
this.VstoSmartTags.EndInit(); |
|
136 |
this.CustomTaskPanes.EndInit(); |
|
137 |
this.EndInit(); |
|
138 |
} |
|
139 |
|
|
140 |
/// |
|
141 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
142 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
143 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
144 |
private void InitializeControls() { |
|
145 |
this.CustomTaskPanes = Globals.Factory.CreateCustomTaskPaneCollection(null, null, "CustomTaskPanes", "CustomTaskPanes", this); |
|
146 |
this.VstoSmartTags = Globals.Factory.CreateSmartTagCollection(null, null, "VstoSmartTags", "VstoSmartTags", this); |
|
147 |
} |
|
148 |
|
|
149 |
/// |
|
150 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
151 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
152 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
153 |
private void InitializeComponents() { |
|
154 |
} |
|
155 |
|
|
156 |
/// |
|
157 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
158 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
|
159 |
private bool NeedsFill(string MemberName) { |
|
160 |
return this.DataHost.NeedsFill(this, MemberName); |
|
161 |
} |
|
162 |
|
|
163 |
/// |
|
164 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
165 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
166 |
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] |
|
167 |
protected override void OnShutdown() { |
|
168 |
this.VstoSmartTags.Dispose(); |
|
169 |
this.CustomTaskPanes.Dispose(); |
|
170 |
base.OnShutdown(); |
|
171 |
} |
|
172 |
} |
|
173 |
|
|
174 |
/// |
|
175 |
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
|
176 |
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Tools.Office.ProgrammingModel.dll", "16.0.0.0")] |
|
177 |
internal sealed partial class Globals { |
|
178 |
|
|
179 |
/// |
|
180 |
private Globals() { |
|
181 |
} |
|
182 |
|
|
183 |
private static ThisAddIn _ThisAddIn; |
|
184 |
|
|
185 |
private static global::Microsoft.Office.Tools.Excel.ApplicationFactory _factory; |
|
186 |
|
|
187 |
private static ThisRibbonCollection _ThisRibbonCollection; |
|
188 |
|
내보내기 Unified diff