在.NET C#中,我正在尝试打开Excel模板,添加一些数据并将其另存为新文档。我正在尝试使用OpenXML文档格式。我似乎无法找到关于如何做到这一点的任何指导。似乎所有的文档都讨论了如何将各种部分写入Package,但是当你完成并想要保存它时,我找不到任何关于该怎么做的东西。

任何人都知道我在哪里可以找到这些信息?我必须正确地思考这个问题,因为我找不到任何有用的东西。

由于

有帮助吗?

解决方案

ExcelPackage 非常适合。主要作者没有对它进行过一段时间的思考,但是它在论坛上有很好的追随者可以解决任何问题。

            FileInfo template = new FileInfo(Path.GetDirectoryName(Application.ExecutablePath)+"\\Template.xlsx");
        try
        {
            using (ExcelPackage xlPackage = new ExcelPackage(strFileName,template))
            {
                //Enable DEBUG mode to create the xl folder (equlivant to expanding a xlsx.zip file)
                //xlPackage.DebugMode = true;

                ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets["Sheet1"];

                worksheet.Name = WorkSheetName;

                foreach (DataRow row in dt.Rows)
                {
                    int c = 1;
                    if (r > startRow) worksheet.InsertRow(r);
                    // our query has the columns in the right order, so simply
                    // iterate through the columns
                    foreach (DataColumn col in dt.Columns)
                    {
                        if (row[col].ToString() != null)
                        {
                            worksheet.Cell(r, c).Value = colValue;
                            worksheet.Column(c).Width = 10;
                        }
                        c++;
                    }
                    r++;
                }

                // change the sheet view to show it in page layout mode
                worksheet.View.PageLayoutView = false;

                // save our new workbook and we are done!
                xlPackage.Save();
                xlPackage.Dispose();
            }
        }

其他提示

访问Open XML / SpreadsheetML文档远非一项微不足道的工作。规范庞大而复杂。 “Open XML SDK” (谷歌它)肯定有帮助,但仍需要一些Open XML标准的知识来完成大量工作。

SpreadsheetGear for .NET 具有类似于Excel的API,可以读写Excel Open XML(xlsx )文档以及Excel 97-2003(xls)文档。

您可以在此处查看一些SpreadsheetGear示例并下载免费试用此处

免责声明:我拥有SpreadsheetGear LLC

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top