NPOI常用功能工具类

  1     public class NPOIHelper
  2     {
  3         /// <summary>
  4         /// DataTable导出到Excel文件
  5         /// </summary>
  6         /// <param name="dtSource">源DataTable</param>
  7         /// <param name="strHeaderText">表头文本</param>
  8         /// <param name="strFileName">保存位置</param>
  9         public static void ExportByServer(DataTable dtSource, string strHeaderText, string strFileName)
 10         {
 11             using (MemoryStream ms = Export(dtSource, strHeaderText))
 12             {
 13                 using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
 14                 {
 15                     byte[] data = ms.ToArray();
 16                     fs.Write(data, 0, data.Length);
 17                     fs.Flush();
 18                 }
 19             }
 20         }
 21
 22
 23         /// <summary>
 24         /// 用于Web导出
 25         /// </summary>
 26         /// <param name="dtSource">源DataTable</param>
 27         /// <param name="strHeaderText">表头文本</param>
 28         /// <param name="strFileName">文件名</param>
 29         public static void ExportByWeb(DataTable dtSource, string strHeaderText, string strFileName)
 30         {
 31             HttpContext curContext = HttpContext.Current;
 32
 33             // 设置编码和附件格式
 34             curContext.Response.ContentType = "application/vnd.ms-excel";
 35             curContext.Response.ContentEncoding = Encoding.UTF8;
 36             curContext.Response.Charset = "";
 37             curContext.Response.AppendHeader("Content-Disposition",
 38                 "attachment;filename=" + HttpUtility.UrlEncode(strFileName, Encoding.UTF8));
 39
 40             curContext.Response.BinaryWrite(Export(dtSource, strHeaderText).GetBuffer());
 41             curContext.Response.End();
 42         }
 43
 44         /// <summary>读取excel
 45         /// 默认第一行为标头
 46         /// </summary>
 47         /// <param name="strFileName">excel文档路径</param>
 48         /// <returns></returns>
 49         public static DataTable Import(string strFileName)
 50         {
 51             DataTable dt = new DataTable();
 52
 53             HSSFWorkbook hssfworkbook;
 54             using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
 55             {
 56                 hssfworkbook = new HSSFWorkbook(file);
 57             }
 58             ISheet sheet = hssfworkbook.GetSheetAt(0);
 59             System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
 60
 61             IRow headerRow = sheet.GetRow(0);
 62             int cellCount = headerRow.LastCellNum;
 63
 64             for (int j = 0; j < cellCount; j++)
 65             {
 66                 ICell cell = headerRow.GetCell(j);
 67                 dt.Columns.Add(cell.ToString());
 68             }
 69
 70             for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
 71             {
 72                 IRow row = sheet.GetRow(i);
 73                 DataRow dataRow = dt.NewRow();
 74
 75                 for (int j = row.FirstCellNum; j < cellCount; j++)
 76                 {
 77                     if (row.GetCell(j) != null)
 78                         dataRow[j] = row.GetCell(j).ToString();
 79                 }
 80
 81                 dt.Rows.Add(dataRow);
 82             }
 83             return dt;
 84         }
 85
 86
 87         /// <summary>
 88         /// DataTable导出到Excel的MemoryStream
 89         /// </summary>
 90         /// <param name="dtSource">源DataTable</param>
 91         /// <param name="strHeaderText">表头文本</param>
 92         public static MemoryStream Export(DataTable dtSource, string strHeaderText)
 93         {
 94             HSSFWorkbook workbook = new HSSFWorkbook();
 95             ISheet sheet = workbook.CreateSheet();
 96
 97             #region 右击文件 属性信息
 98             {
 99                 DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
100                 dsi.Company = "Sohu";
101                 workbook.DocumentSummaryInformation = dsi;
102
103                 SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
104                 si.Author = "文件作者信息"; //填加xls文件作者信息
105                 si.ApplicationName = "创建程序信息"; //填加xls文件创建程序信息
106                 si.LastAuthor = "最后保存者信息"; //填加xls文件最后保存者信息
107                 si.Comments = "作者信息"; //填加xls文件作者信息
108                 si.Title = "标题信息"; //填加xls文件标题信息
109                 si.Subject = "主题信息";//填加文件主题信息
110                 si.CreateDateTime = DateTime.Now;
111                 workbook.SummaryInformation = si;
112             }
113             #endregion
114
115             ICellStyle dateStyle = workbook.CreateCellStyle();
116             IDataFormat format = workbook.CreateDataFormat();
117             dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");
118
119             //取得列宽
120             int[] arrColWidth = new int[dtSource.Columns.Count];
121             foreach (DataColumn item in dtSource.Columns)
122             {
123                 arrColWidth[item.Ordinal] = Encoding.GetEncoding(936).GetBytes(item.ColumnName.ToString()).Length;
124             }
125             for (int i = 0; i < dtSource.Rows.Count; i++)
126             {
127                 for (int j = 0; j < dtSource.Columns.Count; j++)
128                 {
129                     int intTemp = Encoding.GetEncoding(936).GetBytes(dtSource.Rows[i][j].ToString()).Length;
130                     if (intTemp > arrColWidth[j])
131                     {
132                         arrColWidth[j] = intTemp;
133                     }
134                 }
135             }
136             int rowIndex = 0;
137             foreach (DataRow row in dtSource.Rows)
138             {
139                 #region 新建表,填充表头,填充列头,样式
140                 if (rowIndex == 65535 || rowIndex == 0)
141                 {
142                     if (rowIndex != 0)
143                     {
144                         sheet = workbook.CreateSheet();
145                     }
146
147                     #region 表头及样式
148                     {
149                         IRow headerRow = sheet.CreateRow(0);
150                         headerRow.HeightInPoints = 25;
151                         headerRow.CreateCell(0).SetCellValue(strHeaderText);
152
153                         ICellStyle headStyle = workbook.CreateCellStyle();
154                         headStyle.Alignment = HorizontalAlignment.Center;
155                         IFont font = workbook.CreateFont();
156                         font.FontHeightInPoints = 20;
157                         font.Boldweight = 700;
158                         headStyle.SetFont(font);
159                         headerRow.GetCell(0).CellStyle = headStyle;
160                         sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, dtSource.Columns.Count - 1));
161
162                     }
163                     #endregion
164
165
166                     #region 列头及样式
167                     {
168                         IRow headerRow = sheet.CreateRow(1);
169
170                         ICellStyle headStyle = workbook.CreateCellStyle();
171                         headStyle.Alignment = HorizontalAlignment.Center;
172
173
174                         IFont font = workbook.CreateFont();
175                         font.FontHeightInPoints = 10;
176                         font.Boldweight = 700;
177                         headStyle.SetFont(font);
178                         foreach (DataColumn column in dtSource.Columns)
179                         {
180                             headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
181                             headerRow.GetCell(column.Ordinal).CellStyle = headStyle;
182
183                             //设置列宽
184                             sheet.SetColumnWidth(column.Ordinal, (arrColWidth[column.Ordinal] + 1) * 256);
185                         }
186
187                     }
188                     #endregion
189
190                     rowIndex = 2;
191                 }
192                 #endregion
193
194
195                 #region 填充内容
196                 IRow dataRow = sheet.CreateRow(rowIndex);
197                 foreach (DataColumn column in dtSource.Columns)
198                 {
199                     ICell newCell = dataRow.CreateCell(column.Ordinal);
200
201                     string drValue = row[column].ToString();
202
203                     switch (column.DataType.ToString())
204                     {
205                         case "System.String"://字符串类型
206                             newCell.SetCellValue(drValue);
207                             break;
208                         case "System.DateTime"://日期类型
209                             DateTime dateV;
210                             DateTime.TryParse(drValue, out dateV);
211                             newCell.SetCellValue(dateV);
212
213                             newCell.CellStyle = dateStyle;//格式化显示
214                             break;
215                         case "System.Boolean"://布尔型
216                             bool boolV = false;
217                             bool.TryParse(drValue, out boolV);
218                             newCell.SetCellValue(boolV);
219                             break;
220                         case "System.Int16"://整型
221                         case "System.Int32":
222                         case "System.Int64":
223                         case "System.Byte":
224                             int intV = 0;
225                             int.TryParse(drValue, out intV);
226                             newCell.SetCellValue(intV);
227                             break;
228                         case "System.Decimal"://浮点型
229                         case "System.Double":
230                             double doubV = 0;
231                             double.TryParse(drValue, out doubV);
232                             newCell.SetCellValue(doubV);
233                             break;
234                         case "System.DBNull"://空值处理
235                             newCell.SetCellValue("");
236                             break;
237                         default:
238                             newCell.SetCellValue("");
239                             break;
240                     }
241
242                 }
243                 #endregion
244
245                 rowIndex++;
246             }
247             using (MemoryStream ms = new MemoryStream())
248             {
249                 workbook.Write(ms);
250                 ms.Flush();
251                 ms.Position = 0;
252
253                 //sheet.Dispose();
254                 //workbook.Dispose();//一般只用写这一个就OK了,他会遍历并释放所有资源,但当前版本有问题所以只释放sheet
255                 return ms;
256             }
257         }
258
259
260         /// <summary>
261         /// DataTable按模板导出到Excel文件
262         /// </summary>
263         /// <param name="dtSource">源DataTable</param>
264         /// <param name="TempletFileName">模板文件</param>
265         /// <param name="strFileName">保存位置</param>
266         public static void ExportByTemplate(string TempletFileName, string strFileName, DataTable dt, string Type)
267         {
268             using (MemoryStream ms = ExportByTemp(TempletFileName, dt, Type))
269             {
270                 using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
271                 {
272                     byte[] data = ms.ToArray();
273                     fs.Write(data, 0, data.Length);
274                     fs.Flush();
275                 }
276             }
277         }
278         /// <summary>
279         /// DataTable导出到Excel的MemoryStream
280         /// </summary>
281         /// <param name="dt">数据源</param>
282         /// <param name="TempletFileName">Excel模板</param>
283         /// <returns></returns>
284         public static MemoryStream ExportByTemp(string TempletFileName, DataTable dt,string Type)
285         {
286             FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read);
287
288             HSSFWorkbook workbook = new HSSFWorkbook(file);
289             ISheet sheet = workbook.GetSheetAt(1);
290
291             //ICellStyle dateStyle = workbook.CreateCellStyle();
292             //dateStyle.BorderBottom = BorderStyle.Thin;
293             //dateStyle.BorderLeft = BorderStyle.Thin;
294             //dateStyle.BorderRight = BorderStyle.Thin;
295             //dateStyle.BorderTop = BorderStyle.Thin;
296
297             int rowIndex = 0;
298
299             foreach (DataRow entity in dt.Rows)
300             {
301                 IRow dataRow = sheet.CreateRow(rowIndex);
302
303                 if (Type.Equals("SaleType"))
304                 {
305                     ICell newCell0 = dataRow.CreateCell(0);
306                     newCell0.SetCellValue(entity[2].ToString());
307                     //newCell0.CellStyle = dateStyle;
308                 }
309                 else {
310                     ICell newCell0 = dataRow.CreateCell(0);
311                     newCell0.SetCellValue(entity[1].ToString());
312                     //newCell0.CellStyle = dateStyle;
313                 }
314                 //ICell newCell7 = dataRow.CreateCell(7);
315                 //if (type.Equals("excel"))
316                 //{
317                 //    newCell7.SetCellValue(entity.Location == "" ? "" : "第" + entity.Location + "行");
318                 //}
319                 //else if (type.Equals("word"))
320                 //{
321                 //    newCell7.SetCellValue(entity.Location == "" ? "" : "第" + entity.Location + "页");
322                 //}
323                 //newCell7.CellStyle = dateStyle;
324
325
326
327                 rowIndex++;
328             }
329             if (dt.Rows.Count == 1)
330             {
331                 IRow dataRow = sheet.CreateRow(rowIndex);
332                 ICell newCelllast = dataRow.CreateCell(0);
333                 newCelllast.SetCellValue(" ");
334             }
335
336
337
338             using (MemoryStream ms = new MemoryStream())
339             {
340                 workbook.Write(ms);
341                 ms.Flush();
342                 ms.Position = 0;
343
344                 //sheet.Dispose();
345                 //workbook.Dispose();//一般只用写这一个就OK了,他会遍历并释放所有资源,但当前版本有问题所以只释放sheet
346                 return ms;
347             }
348         }
349
350
351         public static void ExportByNodeData(string TfileName, string StrfileName, DataTable dt, string Type,double Rate)
352         {
353             using (MemoryStream ms = ExportByNode(TfileName, dt, Type,Rate))
354             {
355                 using (FileStream fs = new FileStream(StrfileName, FileMode.Create, FileAccess.Write))
356                 {
357                     byte[] data = ms.ToArray();
358                     fs.Write(data, 0, data.Length);
359                     fs.Flush();
360                 }
361             }
362         }
363         public static MemoryStream ExportByNode(string TempletFileName, DataTable dt, string Type, double Rate)
364         {
365             FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read);
366
367             HSSFWorkbook workbook = new HSSFWorkbook(file);
368             ISheet sheet = workbook.GetSheetAt(0);
369
370             ICellStyle dateStyle = workbook.CreateCellStyle();
371             dateStyle.BorderBottom = BorderStyle.Thin;
372             dateStyle.BorderLeft = BorderStyle.Thin;
373             dateStyle.BorderRight = BorderStyle.Thin;
374             dateStyle.BorderTop = BorderStyle.Thin;
375
376             int rowIndex = 1;
377
378             foreach (DataRow entity in dt.Rows)
379             {
380                 IRow dataRow = sheet.CreateRow(rowIndex);
381
382                 if (Type.Equals("SaleTypeExport"))
383                 {
384                     ICell newCell0 = dataRow.CreateCell(0);
385                     newCell0.SetCellValue(rowIndex);
386                     newCell0.CellStyle = dateStyle;
387
388                     ICell newCell1 = dataRow.CreateCell(1);
389                     newCell1.SetCellValue(entity["new_nodename"].ToString());
390                     newCell1.CellStyle = dateStyle;
391
392                     ICell newCell2 = dataRow.CreateCell(2);
393                     newCell2.SetCellValue(Convert.ToDouble(entity["new_lastyear_total"].ToString()));
394                     newCell2.CellStyle = dateStyle;
395
396                     ICell newCell3 = dataRow.CreateCell(3);
397                     newCell3.SetCellValue(Convert.ToDouble(entity["new_total_assign2me"].ToString()));
398                     newCell3.CellStyle = dateStyle;
399
400                     ICell newCell4 = dataRow.CreateCell(4);
401                     newCell4.SetCellValue(Convert.ToInt32(entity["new_accountadd"].ToString()));
402                     newCell4.CellStyle = dateStyle;
403
404                     ICell newCell5 = dataRow.CreateCell(5);
405                     newCell5.SetCellValue(Convert.ToDouble(entity["new_total_assign2me"].ToString()) - (Convert.ToDouble(entity["new_total_assign2me"].ToString()) * Rate));
406                     newCell5.CellStyle = dateStyle;
407
408                     ICell newCell6 = dataRow.CreateCell(6);
409                     newCell6.SetCellValue((Convert.ToDouble(entity["new_total_assign2me"].ToString()) * Rate));
410                     newCell6.CellStyle = dateStyle;
411
412                     ICell newCell7 = dataRow.CreateCell(7);
413                     newCell7.SetCellValue(Convert.ToDouble(entity["RefeAmount"].ToString()));
414                     newCell7.CellStyle = dateStyle;
415
416                     ICell newCell8 = dataRow.CreateCell(8);
417                     newCell8.SetCellValue(entity["new_description"].ToString());
418                     newCell8.CellStyle = dateStyle;
419                 }
420                 else if (Type.Equals("AccountTypeExport"))
421                 {
422                     ICell newCell0 = dataRow.CreateCell(0);
423                     newCell0.SetCellValue(rowIndex);
424                     newCell0.CellStyle = dateStyle;
425
426                     ICell newCell1 = dataRow.CreateCell(1);
427                     newCell1.SetCellValue(entity["new_name"].ToString());
428                     newCell1.CellStyle = dateStyle;
429
430                     ICell newCell2 = dataRow.CreateCell(2);
431                     newCell2.SetCellValue(Convert.ToDouble(entity["new_lastyear_total"].ToString()));
432                     newCell2.CellStyle = dateStyle;
433
434                     ICell newCell3 = dataRow.CreateCell(3);
435                     newCell3.SetCellValue(Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()));
436                     newCell3.CellStyle = dateStyle;
437
438                     ICell newCell4 = dataRow.CreateCell(4);
439                     newCell4.SetCellValue(Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()) - (Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()) * Rate));
440                     newCell4.CellStyle = dateStyle;
441
442                     ICell newCell5 = dataRow.CreateCell(5);
443                     newCell5.SetCellValue((Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()) * Rate));
444                     newCell5.CellStyle = dateStyle;
445
446                     ICell newCell6 = dataRow.CreateCell(6);
447                     newCell6.SetCellValue(Convert.ToDouble(entity["RefeAmount"].ToString()));
448                     newCell6.CellStyle = dateStyle;
449
450                     ICell newCell7 = dataRow.CreateCell(7);
451                     newCell7.SetCellValue(entity["new_nodetemdesc_description"].ToString());
452                     newCell7.CellStyle = dateStyle;
453                 }
454                 else if (Type.Equals("NodeDescByAccountExport"))
455                 {
456                     ICell newCell0 = dataRow.CreateCell(0);
457                     newCell0.SetCellValue(rowIndex);
458                     newCell0.CellStyle = dateStyle;
459
460                     ICell newCell1 = dataRow.CreateCell(1);
461                     newCell1.SetCellValue(entity["new_name"].ToString());
462                     newCell1.CellStyle = dateStyle;
463
464                     ICell newCell2 = dataRow.CreateCell(2);
465                     newCell2.SetCellValue(Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()));
466                     newCell2.CellStyle = dateStyle;
467
468                     ICell newCell3 = dataRow.CreateCell(3);
469                     newCell3.SetCellValue(Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()) - (Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()) * Rate));
470                     newCell3.CellStyle = dateStyle;
471
472                     ICell newCell4 = dataRow.CreateCell(4);
473                     newCell4.SetCellValue((Convert.ToDouble(entity["new_nodetemdesc_amount"].ToString()) * Rate));
474                     newCell4.CellStyle = dateStyle;
475
476                     ICell newCell5 = dataRow.CreateCell(5);
477                     newCell5.SetCellValue(Convert.ToDouble(entity["RefeAmount"].ToString()));
478                     newCell5.CellStyle = dateStyle;
479
480                     ICell newCell6 = dataRow.CreateCell(6);
481                     newCell6.SetCellValue(entity["new_nodetemdesc_description"].ToString());
482                     newCell6.CellStyle = dateStyle;
483                 }
484                 else if (Type.Equals("NodeDescBySaleExport"))
485                 {
486                     ICell newCell0 = dataRow.CreateCell(0);
487                     newCell0.SetCellValue(rowIndex);
488                     newCell0.CellStyle = dateStyle;
489
490                     ICell newCell1 = dataRow.CreateCell(1);
491                     newCell1.SetCellValue(entity["new_name"].ToString());
492                     newCell1.CellStyle = dateStyle;
493
494                     ICell newCell2 = dataRow.CreateCell(2);
495                     newCell2.SetCellValue(Convert.ToDouble(entity["new_distributeamount"].ToString()));
496                     newCell2.CellStyle = dateStyle;
497
498                     ICell newCell3 = dataRow.CreateCell(3);
499                     newCell3.SetCellValue(Convert.ToDouble(entity["new_distributeamount"].ToString()) - (Convert.ToDouble(entity["new_distributeamount"].ToString()) * Rate));
500                     newCell3.CellStyle = dateStyle;
501
502                     ICell newCell4 = dataRow.CreateCell(4);
503                     newCell4.SetCellValue((Convert.ToDouble(entity["new_distributeamount"].ToString()) * Rate));
504                     newCell4.CellStyle = dateStyle;
505
506                     ICell newCell5 = dataRow.CreateCell(5);
507                     newCell5.SetCellValue(Convert.ToDouble(entity["RefeAmount"].ToString()));
508                     newCell5.CellStyle = dateStyle;
509
510                     ICell newCell6 = dataRow.CreateCell(6);
511                     newCell6.SetCellValue(entity["new_description"].ToString());
512                     newCell6.CellStyle = dateStyle;
513                 }
514                 rowIndex++;
515             }
516
517             using (MemoryStream ms = new MemoryStream())
518             {
519                 workbook.Write(ms);
520                 ms.Flush();
521                 ms.Position = 0;
522
523                 //sheet.Dispose();
524                 //workbook.Dispose();//一般只用写这一个就OK了,他会遍历并释放所有资源,但当前版本有问题所以只释放sheet
525                 return ms;
526             }
527         }
528
529     }

时间: 2024-11-14 13:02:43

NPOI常用功能工具类的相关文章

java中常用的工具类(二)

下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Android常用的工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.PreferencesUtils.JSONUtils.FileUtils.ResourceUtils.StringUtils.ParcelUtils.RandomUtils.ArrayUtils.ImageUtils.ListUtils.MapUtils.ObjectUtils.SerializeUtils.S

java中常用的工具类(三)

继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

java中常用的工具类(一)

我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工具类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5

28个Java常用的工具类

源码下载:http://pan.baidu.com/s/1pJLSczD Base64.javaBase64DecodingException.javaCConst.javaCharTools.javaConfigHelper.javaCounter.javaCTool.javaDateHandler.javaDateUtil.javaDealString.javaDebugOut.javaDom4jHelper.javaEscape.javaExecHelper.javaFileHelper.

common-lang 常用的工具类使用示例

原文:common-lang 常用的工具类使用示例 源代码下载地址:http://www.zuidaima.com/share/1550463718640640.htm common-lang 常用的工具类使用示例 StringUtil.dateUtil.DateFormatUtils.NumberUtils等 package com.zuidaima.trs.StringUtil; import java.io.File; import java.io.FileInputStream; imp

Android中常用的工具类01

1.图片和视频缩略图工具类 import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.media.ThumbnailUtils; /** * 缩略图生成工具类 * @author * */ public class ThumbnailGenerateUtils { private ThumbnailGenerateUtils(){}; /** * 根据指定的图像路径和大小来获取缩略图

Android中常用的工具类02

1.读取手机联系人信息 一般用在读取手机通讯录上传,这一块比较多. import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract.CommonDataKinds.Phon

java并发编程中常用的工具类 Executor

/***************************************************  * TODO: description .  * @author: gao_chun  * @since:  2015-4-17  * @version: 1.0.0  * @remark: 转载请注明出处  **************************************************/ java.util.concurrent.Executor 使用 Execut