using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.Data; using YTO.WeiXin.Model; namespace YTO.WeiXin.Core { public class ExcelToDB { public HSSFWorkbook hssfworkbook; //将excel文件转换成list public IList<ContactInfo> ExcelToList(string path) { IList<ContactInfo> list = new List<ContactInfo>(); try { using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read)) { hssfworkbook = new HSSFWorkbook(file); HSSFSheet sheet = hssfworkbook.GetSheetAt(0) as HSSFSheet; for (int i = 0; i <= sheet.LastRowNum; i++) { HSSFRow row = sheet.GetRow(i) as HSSFRow; ContactInfo contactInfo = new ContactInfo(); contactInfo.Id = Guid.NewGuid().ToString(); if (row.GetCell(0) != null) { row.GetCell(0).SetCellType(CellType.STRING); contactInfo.CenterName = row.GetCell(0).StringCellValue.ToString(); } else { contactInfo.CenterName = ""; } if (row.GetCell(0) != null) { row.GetCell(1).SetCellType(CellType.STRING); contactInfo.Name = row.GetCell(1).StringCellValue.ToString(); } else { contactInfo.Name = ""; } if (row.GetCell(2) != null) { row.GetCell(2).SetCellType(CellType.STRING); contactInfo.PhoneNumber = row.GetCell(2).StringCellValue.ToString(); } else { contactInfo.PhoneNumber = ""; } if (row.GetCell(3) != null) { row.GetCell(3).SetCellType(CellType.STRING); contactInfo.Address = row.GetCell(3).StringCellValue.ToString(); } else { contactInfo.Address = ""; } list.Add(contactInfo); } } return list; } catch (Exception ex) { throw ex; } } //中心联系方式导出 public MemoryStream ExportToExcel(string fileName, IList<ContactInfo> list) { HSSFWorkbook workbook = new HSSFWorkbook(); Sheet sheet1 = workbook.CreateSheet("Sheet1"); sheet1.SetColumnWidth(0, 24 * 256); sheet1.SetColumnWidth(1, 16 * 256); sheet1.SetColumnWidth(2, 16 * 256); sheet1.SetColumnWidth(3, 46 * 256); Row row = sheet1.CreateRow(0); row.HeightInPoints = 16; row.CreateCell(0).SetCellValue("中心名称"); row.CreateCell(1).SetCellValue("联系人"); row.CreateCell(2).SetCellValue("联系方式"); row.CreateCell(3).SetCellValue("地址"); CellStyle style = workbook.CreateCellStyle(); style.Alignment = HorizontalAlignment.CENTER; style.WrapText = true; Font font = workbook.CreateFont(); font.FontHeightInPoints = 12; font.Boldweight = (short)FontBoldWeight.BOLD; font.Color = (short)FontColor.RED; style.SetFont(font); for (int i = 0; i < 4; i++) { row.GetCell(i).CellStyle = style; } for (int i = 1; i < list.Count; i++) { row = sheet1.CreateRow(i); row.CreateCell(0).SetCellValue(list[i - 1].CenterName); row.CreateCell(1).SetCellValue(list[i - 1].Name); row.CreateCell(2).SetCellValue(list[i - 1].PhoneNumber); row.CreateCell(3).SetCellValue(list[i - 1].Address); } MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Flush(); ms.Position = 0; return ms; } //异常信息导出 public MemoryStream ExportExcptionToExcel(string fileName, IList<ExcptionInfo> list) { HSSFWorkbook workbook = new HSSFWorkbook(); Sheet sheet1 = workbook.CreateSheet("Sheet1"); sheet1.SetColumnWidth(0, 12 * 256); sheet1.SetColumnWidth(1, 20 * 256); sheet1.SetColumnWidth(2, 16 * 256); sheet1.SetColumnWidth(3, 36 * 256); sheet1.SetColumnWidth(4, 16 * 256); sheet1.SetColumnWidth(5, 40 * 256); sheet1.SetColumnWidth(6, 20 * 256); Row row = sheet1.CreateRow(0); row.HeightInPoints = 16; row.CreateCell(0).SetCellValue("车牌号"); row.CreateCell(1).SetCellValue("线路"); row.CreateCell(2).SetCellValue("手机号"); row.CreateCell(3).SetCellValue("异常情况"); row.CreateCell(4).SetCellValue("异常类型"); row.CreateCell(5).SetCellValue("位置"); row.CreateCell(6).SetCellValue("上报时间"); CellStyle style = workbook.CreateCellStyle(); style.Alignment = HorizontalAlignment.CENTER; style.WrapText = true; Font font = workbook.CreateFont(); font.FontHeightInPoints = 12; font.Boldweight = (short)FontBoldWeight.BOLD; font.Color = (short)FontColor.RED; style.SetFont(font); for (int i = 0; i < 7; i++) { row.GetCell(i).CellStyle = style; } for (int i = 1; i < list.Count; i++) { row = sheet1.CreateRow(i); row.CreateCell(0).SetCellValue(list[i].LiencePlateNumber); row.CreateCell(1).SetCellValue(list[i].CarLine); row.CreateCell(2).SetCellValue(list[i].PhoneNumber); row.CreateCell(3).SetCellValue(list[i].Remark); row.CreateCell(4).SetCellValue(list[i].ExcptionCategory); row.CreateCell(5).SetCellValue(list[i].Position); row.CreateCell(6).SetCellValue(list[i].CreateTime.ToString()); } MemoryStream ms = new MemoryStream(); workbook.Write(ms); ms.Flush(); ms.Position = 0; return ms; } } }