我是OpenXML的新手(2.5版),我可以创建行和单元格,但我需要能够设置列宽,但由于某种原因我无法正确执行.
没有这个代码:
Columns cols = new Columns();
Column c1 = new Column()
{
CustomWidth = true,
Width = 20
};
cols.Append(c1);
wspart.Worksheet.Append(cols);
Run Code Online (Sandbox Code Playgroud)
该程序运行并生成一个excel文件.
下面的代码符合并运行,但留下了一个损坏的Excel文档.当我尝试添加列时,我做错了什么?
public static void createExcel() //TODO change to private
{
//create the spreadsheet document with openxml See https://msdn.microsoft.com/en-us/library/office/ff478153.aspx
SpreadsheetDocument spreadsheetDoc = SpreadsheetDocument.Create(@"C:\Users\Reid\Documents\BLA\test.xlsx", SpreadsheetDocumentType.Workbook); //TODO change path
//add a workbook part
WorkbookPart wbpart = spreadsheetDoc.AddWorkbookPart();
wbpart.Workbook = new Workbook();
//add a worksheet part
WorksheetPart wspart = wbpart.AddNewPart<WorksheetPart>();
Worksheet ws = new Worksheet(new SheetData());
wspart.Worksheet = ws;
//create a …Run Code Online (Sandbox Code Playgroud) 我正在尝试更改一些excel列的宽度.我已经尝试了所有的东西,但我一直在获取空的excel文档,我的excel文件工作正常,没有添加:
Columns columns = new Columns();
columns.Append(new Column() { Min = 1, Max = 3, Width = 20, CustomWidth = true });
columns.Append(new Column() { Min = 4, Max = 4, Width = 30, CustomWidth = true });
wsPart.Worksheet.Append(columns);
Run Code Online (Sandbox Code Playgroud)
但是一旦我像这个用户建议那样添加它,我就必须修复我的excel文件,它将是空的.我收到此错误:"替换部分:/xl/worksheets/sheet.xml部分出现XML错误.加载错误.第1行,第0列".并且'修复'文件是空的.
我的代码与MSDN示例中的代码基本相同
我尝试了很多不同的方法来改变列宽,所以我认为问题出在其他地方.我似乎无法弄清楚出了什么问题.
编辑:完整的代码
_document = SpreadsheetDocument.Create(newFileName, SpreadsheetDocumentType.Workbook);
_workbookPart = _document.AddWorkbookPart();
_workbookPart.Workbook = new Workbook();
WorksheetPart worksheetPart = _workbookPart.AddNewPart<WorksheetPart>();
worksheetPart.Worksheet = new Worksheet(new SheetViews(new SheetView { WorkbookViewId = 0, ShowGridLines = new BooleanValue(false) }), new SheetData());
_document.WorkbookPart.Workbook.AppendChild(new …Run Code Online (Sandbox Code Playgroud)