Excelファイルの作成にOpenXML SDK 2.5を使用しています。作成したExcelファイルのグリッド線を非表示にしたい.SheetViewsを作成しようとしましたが、シートが完全に非表示になりました. 以下のような私の純粋なコード
public static SpreadsheetDocument CreateWorkbook(MemoryStream memoryStream)
{
var spreadSheet = SpreadsheetDocument.Create(memoryStream, SpreadsheetDocumentType.Workbook);
spreadSheet.AddWorkbookPart();
spreadSheet.WorkbookPart.Workbook = new Workbook();
spreadSheet.WorkbookPart.Workbook.Save();
var sharedStringTablePart = spreadSheet.WorkbookPart.AddNewPart<SharedStringTablePart>();
sharedStringTablePart.SharedStringTable = new SharedStringTable();
sharedStringTablePart.SharedStringTable.Save();
spreadSheet.WorkbookPart.Workbook.Sheets = new Sheets();
spreadSheet.WorkbookPart.Workbook.Save();
var workbookStylesPart = spreadSheet.WorkbookPart.AddNewPart<WorkbookStylesPart>();
workbookStylesPart.Stylesheet = new Stylesheet();
workbookStylesPart.Stylesheet.Save();
memoryStream.Seek(0, SeekOrigin.Begin);
return spreadSheet;
}
public static bool AddWorksheet(SpreadsheetDocument spreadsheet, string name)
{
Sheets sheets = spreadsheet.WorkbookPart.Workbook.GetFirstChild<Sheets>();
var worksheetPart = spreadsheet.WorkbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetData());
worksheetPart.Worksheet.Save();
var sheet = new Sheet()
{
Id = spreadsheet.WorkbookPart.GetIdOfPart(worksheetPart),
SheetId = (uint)(spreadsheet.WorkbookPart.Workbook.Sheets.Count() + 1),
Name = name
};
if (string.IsNullOrEmpty(name)) {
sheet.Name = string.Format("Sheet{0}", sheet.SheetId);
}
sheets.Append(sheet);
spreadsheet.WorkbookPart.Workbook.Save();
return true;
}
その後、メモリ内にスプレッドシートのインスタンスを作成しています
//Creating like that
var memoryStream = new MemoryStream();
var spreadsheet = CreateWorkbook(memoryStream);
AddWorksheet(spreadsheet, null);
//End Filling data
いくつかのチェックの後、列を使用すると、グリッド線を非表示にできませんでした。データを表示するためだけにセルを作成する必要があります。しかし、その時は列が存在しないため、幅のプロパティを変更できませんでした:)