使用DocumentOpenXML、OfficeOpenXML、NPOI、EpPlus实现导入导出Excel表格

public class ExcelHelper
    {
        /// <summary>
        /// 将数据导出为Excel文件
        /// </summary>
        /// <param name="name">文件名</param>
        /// <param name="strList">数据</param>
        /// <param name="path">路径,默认D盘根目录</param>
        /// <returns></returns>
        public string ExportExcel(string name, List<string[]> strList, string path = "D:\\")
        {
            string documentPath = string.Format($"{path}{name}.xlsx");
            var spreadsheetDocument = SpreadsheetDocument.Create(documentPath, SpreadsheetDocumentType.Workbook);
            var workbookpart = spreadsheetDocument.AddWorkbookPart();
            workbookpart.Workbook = new Workbook();
            WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();
            worksheetPart.Worksheet = new Worksheet(new SheetData());
            Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets());
            Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Sheet1" };
            sheets.Append(sheet);
            var sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
            foreach (var item in strList)
            {
                Row row = new Row();
                foreach (var str in item)
                {
                    Cell dataCell = new Cell
                    {
                        CellValue = new CellValue(str),
                        DataType = new EnumValue<CellValues>(CellValues.String)
                    };
                    row.AppendChild(dataCell);
                }
                sheetData.Append(row);
            }

            workbookpart.Workbook.Save();
            spreadsheetDocument.Close();
            return documentPath;
        }
        
        /// <summary>
        /// 读取Excel文件
        /// </summary>
        /// <param name="path">文件路径</param>
        public List<string[]> ImportExcel(string path)
        {
            using (SpreadsheetDocument doc = SpreadsheetDocument.Open(path, false))
            {
                WorkbookPart wbPart = doc.WorkbookPart;
                SharedStringTablePart tablePart = wbPart.SharedStringTablePart;
                Sheet mysheet = (Sheet)doc.WorkbookPart.Workbook.Sheets.ChildElements.FirstOrDefault();
                WorksheetPart worksheet = ((WorksheetPart)wbPart.GetPartById(mysheet.Id));
                SheetData sheetData = worksheet.Worksheet.GetFirstChild<SheetData>();
                List<string[]> strList = new List<string[]>();
                ArrayList arrayList = new ArrayList();
                foreach (var row in sheetData.ChildElements)
 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值