1,此类用于将DataTable中的数据导出到Excel文件中,并由指定的Excel摩板规定固定的输出格式,用来得到规定的样式文件。
2,导出文件可以是Excel文件或者XML文件。
3,作为摩板的Excel文件要求有宏“MainMacro”,来处理DataTable中的数据。
1
using System;
2
using System.Data;
3![](/Images/OutliningIndicators/None.gif)
4
namespace ExportFile
5
{
6![](/Images/OutliningIndicators/InBlock.gif)
7
public class DataExport
8
{
9
10
public static bool ToExcel(DataTable datatable,string[] header,string templatefilename,string filename,string filepath) {
11
return GenerateFile(datatable,header,templatefilename,filename,filepath,"Excel",true);
12
}
13![](/Images/OutliningIndicators/InBlock.gif)
14
public static bool ToExcel(DataTable datatable,string templatefilename,string filename,string filepath) {
15
return GenerateFile(datatable,null,templatefilename,filename,filepath,"Excel",false);
16
}
17![](/Images/OutliningIndicators/InBlock.gif)
18
public static bool ToXML(DataTable datatable,string[] header,string templatefilename,string filename,string filepath) {
19
return GenerateFile(datatable,header,templatefilename,filename,filepath,"XML",true);
20
}
21![](/Images/OutliningIndicators/InBlock.gif)
22
private static bool GenerateFile(DataTable datatable,string[] Header,string templatefilename,string filename,
23
string filepath,string filetype,bool hasheader){
24
Excel.ApplicationClass oExcel = new Excel.ApplicationClass();
25
oExcel.Visible = false;
26
oExcel.DisplayAlerts = false;
27
Excel.Workbooks oBooks = oExcel.Workbooks;
28
Excel._Workbook oBook = null;
29
object oMissing = System.Reflection.Missing.Value;
30
31
try{
32
oBook = oBooks.Open(templatefilename,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,
33
oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);
34![](/Images/OutliningIndicators/InBlock.gif)
35
string[,] Content = ConvertDataToArray(datatable);
36![](/Images/OutliningIndicators/InBlock.gif)
37
oExcel.Run("MainMacro",Content, Header,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,
38
oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,
39
oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);
40![](/Images/OutliningIndicators/InBlock.gif)
41
string strSaveFile = filepath + filename;
42![](/Images/OutliningIndicators/InBlock.gif)
43
if(filetype == "Excel"){
44
oBook.SaveAs(strSaveFile,oMissing,oMissing,oMissing,oMissing,oMissing,Excel.XlSaveAsAccessMode.xlShared,oMissing,oMissing,oMissing,
45
oMissing,oMissing);
46
}
47
else if(filetype == "XML"){
48
oBook.SaveAs(strSaveFile,Excel.XlFileFormat.xlXMLSpreadsheet,oMissing,oMissing,oMissing,oMissing,Excel.XlSaveAsAccessMode.xlNoChange,
49
Excel.XlSaveConflictResolution.xlOtherSessionChanges,oMissing,oMissing,oMissing,oMissing);
50
}
51
}
52
catch(Exception){
53
return false;
54
}
55
finally{
56
if(oBook != null){
57
oBook.Close(false,oMissing,oMissing);
58
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
59
oBook = null;
60
}
61
if(oBooks != null){
62
System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
63
oBooks = null;
64
}
65
if(oExcel != null){
66
oExcel.Quit();
67
System.Runtime.InteropServices.Marshal.ReleaseComObject(oExcel);
68
oExcel = null;
69
}
70
GC.Collect();
71
}
72
return true;
73
}
74![](/Images/OutliningIndicators/InBlock.gif)
75
private static string[,] ConvertDataToArray(DataTable datatable){
76![](/Images/OutliningIndicators/InBlock.gif)
77
int rowCount = datatable.Rows.Count;
78
int columnCount = datatable.Columns.Count;
79
string[,] arrData = new string[rowCount,columnCount];
80![](/Images/OutliningIndicators/InBlock.gif)
81
for(int i = 0 ;i< rowCount ;i++) {
82
for(int j = 0;j < columnCount ; j++ ) {
83
arrData[i,j] = Convert.ToString(datatable.Rows[i][j]);
84
}
85
}
86
return arrData;
87
}
88![](/Images/OutliningIndicators/InBlock.gif)
89
}
90
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](/Images/OutliningIndicators/InBlock.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
47
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
51
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
52
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
53
![](/Images/OutliningIndicators/InBlock.gif)
54
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
55
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
56
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
61
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
65
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/InBlock.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
82
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
85
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)