데이터베이스 컨텐트를 Excel로 내보내기

19564 단어 Excel
이 사례는 NPOI를 도입해야 합니다.dll 파일과 Ionic.Zip.dll 파일
 
  1 using System;

  2 

  3 using System.Collections.Generic;

  4 

  5 using System.Linq;

  6 

  7 using System.Text;

  8 

  9 using System.Data.SqlClient;

 10 

 11 using NPOI.SS.UserModel;

 12 

 13 using NPOI.HSSF.UserModel;

 14 

 15 using System.IO;

 16 

 17  

 18 

 19 namespace  Excel

 20 

 21 {

 22 

 23     class Program

 24 

 25     {

 26 

 27         static void Main(string[] args)

 28 

 29         {

 30 

 31    

 32 

 33             bool b = false;

 34 

 35             using (SqlDataReader reader = SqlHelper.ExecuteReader("select * from T_Customers"))

 36 

 37             {

 38 

 39  

 40 

 41                 if (reader.HasRows)

 42 

 43                 {

 44 

 45                     b = true;

 46 

 47 // 

 48 

 49                     using (Workbook book = new HSSFWorkbook())

 50 

 51                     {

 52 

 53                         using (Sheet sheet = book.CreateSheet("CustomerInfo.xls"))

 54 

 55                         {

 56 

 57     //

 58 

 59                             Row rowHeader = sheet.CreateRow(0);

 60 

 61 // , , 

 62 

 63    reader.FieldCount 

 64 

 65                             for (int c = 0; c < reader.FieldCount; c++)

 66 

 67                             {

 68 

 69                                 rowHeader.CreateCell(c).SetCellValue(reader.GetName(c));

 70 

 71                             }

 72 

 73  

 74 

 75                             int indexof = 1;

 76 

 77                             while (reader.Read())

 78 

 79                             {

 80 

 81                                 Row row = sheet.CreateRow(indexof);

 82 

 83                                 for (int i = 0; i < reader.FieldCount; i++)

 84 

 85                                 {

 86 

 87                                     Cell cell = row.CreateCell(i);

 88 

 89                                     switch (reader.GetDataTypeName(i))

 90 

 91                                     {

 92 

 93                                         case "int":

 94 

 95                                             if (reader.IsDBNull(i))

 96 

 97                                             {

 98 

 99                                                 cell.SetCellType(CellType.BLANK);

100 

101                                             }

102 

103                                             else

104 

105                                             {

106 

107                                                 cell.SetCellValue(reader.GetInt32(i));

108 

109                                             }

110 

111                                             break;

112 

113                                         case "varchar":

114 

115                                         case "char":

116 

117                                         case "nchar":

118 

119                                         case "nvarchar":

120 

121                                             if (reader.IsDBNull(i))

122 

123                                             {

124 

125                                                 cell.SetCellType(CellType.BLANK);

126 

127                                             }

128 

129                                             else

130 

131                                             {

132 

133                                                 cell.SetCellValue(reader.GetString(i));

134 

135                                             }

136 

137                                             break;

138 

139                                         case "datetime":

140 

141                                             if (reader.IsDBNull(i))

142 

143                                             {

144 

145                                                 cell.SetCellType(CellType.BLANK);

146 

147                                             }

148 

149                                             else

150 

151                                             {

152 

153                                                 cell.SetCellValue(reader.GetDateTime(i).ToString());

154 

155                                             }

156 

157                                             break;

158 

159                                         default: break;

160 

161  

162 

163                                     }

164 

165  

166 

167                                 }

168 

169                                 indexof++;

170 

171                             }

172 

173                             using (FileStream fsWrite = File.OpenWrite("CustomerInfo.xls"))

174 

175                             {

176 

177                                 book.Write(fsWrite);

178 

179                                 Console.WriteLine(" ");

180 

181                             }

182 

183                         }

184 

185                         if (!b)

186 

187                         {

188 

189                             Console.WriteLine(" ");

190 

191                         }

192 

193                     }

194 

195                 }

196 

197             }

198 

199         }

200 

201     }

202 

203 }

 
 
 

좋은 웹페이지 즐겨찾기