zoukankan      html  css  js  c++  java
  • Open Xml 创建Excel并插入数据

    创建Excel

            private static void CreateSpreadSheet()
            {
                string fileName = "E:\\01.xlsx";
                string sheetName = "test";
    
                using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook))
                {
                    // create the workbook  
                    spreadSheet.AddWorkbookPart();
                    spreadSheet.WorkbookPart.Workbook = new Workbook();     // create the worksheet  
                    spreadSheet.WorkbookPart.AddNewPart<WorksheetPart>();
                    spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet = new Worksheet();
                    SharedStringTablePart m_SharedStringTablePart = spreadSheet.WorkbookPart.AddNewPart<SharedStringTablePart>();
    
                    // create sheet data  
                    SheetData m_SheetData = new SheetData();
                    spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.AppendChild(m_SheetData);
    
                    // create row  
                    //spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.First().AppendChild(new Row());
                    //// create cell with data  
                    //spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.First().First().AppendChild(new Cell() { CellValue = new CellValue("100") });
    
                    //Add Data
                    Row row1 = new Row() { RowIndex = 1 };
    
    
                    
                    Cell cell1 = new Cell() { CellReference = "A1" };
                    int index = InsertSharedStringItem("Sun", m_SharedStringTablePart);
                    cell1.CellValue = new CellValue(index.ToString());
                    cell1.DataType = new EnumValue<CellValues>(CellValues.SharedString);
    
    
                    
                    row1.Append(cell1);
                    m_SheetData.Append(row1);
    
                    // save worksheet  
                    spreadSheet.WorkbookPart.WorksheetParts.First().Worksheet.Save();
    
                    // create the worksheet to workbook relation  
                    spreadSheet.WorkbookPart.Workbook.AppendChild(new Sheets());
                    spreadSheet.WorkbookPart.Workbook.GetFirstChild<Sheets>().AppendChild(new Sheet()
                    {
                        Id = spreadSheet.WorkbookPart.GetIdOfPart(spreadSheet.WorkbookPart.WorksheetParts.First()),
                        SheetId = 1,
                        Name = sheetName
                    });
    
                    spreadSheet.WorkbookPart.Workbook.Save();
                }
            }
    
            private static int InsertSharedStringItem(string text, SharedStringTablePart shareStringPart)
            {
                // If the part does not contain a SharedStringTable, create one.
                if (shareStringPart.SharedStringTable == null)
                {
                    shareStringPart.SharedStringTable = new SharedStringTable();
                    shareStringPart.SharedStringTable.Count = 1;
                    shareStringPart.SharedStringTable.UniqueCount = 1;
                }
    
                int i = 0;
                // Iterate through all the items in the SharedStringTable. If the text already exists, return its index.
                foreach (SharedStringItem item in shareStringPart.SharedStringTable.Elements<SharedStringItem>())
                {
                    if (item.InnerText == text)
                    {
                        return i;
                    }
                    i++;
                }
    
                // The text does not exist in the part. Create the SharedStringItem and return its index.
                shareStringPart.SharedStringTable.AppendChild(new SharedStringItem(new DocumentFormat.OpenXml.Spreadsheet.Text(text)));
                shareStringPart.SharedStringTable.Save();
    
                return i;
            }
  • 相关阅读:
    【bzoj3110】[Zjoi2013]K大数查询 权值线段树套区间线段树
    【bzoj3196】Tyvj 1730 二逼平衡树 线段树套Treap
    【bzoj1189】[HNOI2007]紧急疏散evacuate BFS最短路+动态加边网络流
    【bzoj3527】[Zjoi2014]力 FFT
    【bzoj4259/bzoj4503】残缺的字符串/两个串 FFT
    【bzoj4827】[Hnoi2017]礼物 FFT
    【bzoj2194】快速傅立叶之二 FFT
    【bzoj2179】FFT快速傅立叶 FFT
    【bzoj4327】JSOI2012 玄武密码 AC自动机
    【bzoj3238】[Ahoi2013]差异 后缀数组+单调栈
  • 原文地址:https://www.cnblogs.com/sshoub/p/2660152.html
Copyright © 2011-2022 走看看