相关疑难解决方法(0)

在OpenXML(excel)中创建自定义列宽

我是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)

c# excel openxml openxml-sdk

10
推荐指数
2
解决办法
2万
查看次数

OpenXML自定义列宽不起作用

我正在尝试更改一些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)

c# openxml

1
推荐指数
1
解决办法
2078
查看次数

标签 统计

c# ×2

openxml ×2

excel ×1

openxml-sdk ×1