2010-03-22 12 views

回答

4
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(spreadSheetFileName, true)) { 
    WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart; 

    // rId must be unique within the spreadsheet. 
    // You might be able to use the SpreadSheetDocument.Parts.Count() to do this. 
    // i.e. string relationshipID = "rId" + (spreadsheetDocument.Parts.Count() + 1).ToString(); 
    string rId = "rId6"; 

    // Sheet.Name and Sheet.SheetId must be unique within the spreadsheet. 
    Sheet sheet = new Sheet() { Name = "Sheet4", SheetId = 4U, Id = rId }; 
    workbookPart.Workbook.Sheets.Append(sheet); 

    WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>(rId); 

    Worksheet worksheet = new Worksheet(); 
    worksheet.AddNamespaceDeclaration("r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); 

    // I don't know what SheetDimension.Reference is used for, it doesn't seem to change the resulting xml. 
    SheetDimension sheetDimension = new SheetDimension() { Reference = "A1:A3" }; 
    SheetViews sheetViews = new SheetViews(); 
    // If more than one SheetView.TabSelected is set to true, it looks like Excel just picks the first one. 
    SheetView sheetView = new SheetView() { TabSelected = false, WorkbookViewId = 0U }; 

    // I don't know what Selection.ActiveCell is used for, it doesn't seem to change the resulting xml. 
    Selection selection = new Selection() { ActiveCell = "A1", SequenceOfReferences = new ListValue<StringValue>() { InnerText = "A1" } }; 
    sheetView.Append(selection); 
    sheetViews.Append(sheetView); 
    SheetFormatProperties sheetFormatProperties = new SheetFormatProperties() { DefaultRowHeight = 15D }; 

    SheetData sheetData = new SheetData(); 

    // I don't know what the InnerText of Row.Spans is used for. It doesn't seem to change the resulting xml. 
    Row row = new Row() { RowIndex = 1U, Spans = new ListValue<StringValue>() { InnerText = "1:3" } }; 

    Cell cell1 = new Cell() { CellReference = "A1", DataType = CellValues.Number, CellValue = new CellValue("99") }; 
    Cell cell2 = new Cell() { CellReference = "B1", DataType = CellValues.Number, CellValue = new CellValue("55") }; 
    Cell cell3 = new Cell() { CellReference = "C1", DataType = CellValues.Number, CellValue = new CellValue("33") }; 

    row.Append(cell1); 
    row.Append(cell2); 
    row.Append(cell3); 

    sheetData.Append(row); 
    PageMargins pageMargins = new PageMargins() { Left = 0.7D, Right = 0.7D, Top = 0.7D, Bottom = 0.75D, Header = 0.3D, Footer = 0.3D }; 

    worksheet.Append(sheetDimension); 
    worksheet.Append(sheetViews); 
    worksheet.Append(sheetFormatProperties); 
    worksheet.Append(sheetData); 
    worksheet.Append(pageMargins); 

    worksheetPart.Worksheet = worksheet; 
} 
0

我不知道是什麼Selection.ActiveCell用於

周圍有ActiveCell焦點矩形Excel打開時。 A1是創建新電子表格時的ActivCell默認值。 ActiveCell可以被設置爲使用Selection.ActiveCell

2

(1)我不知道是什麼Selection.ActiveCell用於

周圍有ActiveCell焦點矩形Excel中打開時的任意單元格。 A1是打開新電子表格時的ActivCell默認值。 ActiveCell可以被設置爲使用Selection.ActiveCell

任何細胞

(2)我不知道什麼SheetDimension.Reference用於

SheetDimension.Reference contanis一個範圍,如 「A4:BA25」 A4是第一個單元格的值和BA25是最後一個。 我不確切知道Excel如何使用此信息,但OpenXml不爲空行,列和單元維護xml。 SheetDimension.Reference表示在A4之前沒有值的單元格,沒有BA25之後的值的單元格。

相關問題