Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ClosedXml不';t复制电子表格';s打印机设置_C#_Excel_Printing_Closedxml - Fatal编程技术网

C# ClosedXml不';t复制电子表格';s打印机设置

C# ClosedXml不';t复制电子表格';s打印机设置,c#,excel,printing,closedxml,C#,Excel,Printing,Closedxml,我有xltx Excel的模板,当我从它创建(手动)新文档并单击Excel中的文件->打印时,第一张工作表适合一页 然后,我在ClosedXml的帮助下从模板创建新文档: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ClosedXML.Excel; namespace ClosedXml1 { class Program {

我有xltx Excel的模板,当我从它创建(手动)新文档并单击Excel中的
文件
->
打印
时,第一张工作表适合一页

然后,我在
ClosedXml
的帮助下从模板创建新文档:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClosedXML.Excel;

namespace ClosedXml1
{
    class Program
    {
        static void Main(string[] args)
        {
            var tXltx = "t.xltx";
            using (XLWorkbook workbook = new XLWorkbook(tXltx))
            {
                using (XLWorkbook newWb = new XLWorkbook())
                {
                    foreach (XLWorksheet worksheet in workbook.Worksheets.Reverse())
                    {
                        worksheet.CopyTo(newWb, worksheet.Name, 1);
                    }

                    newWb.SaveAs("new.xlsx");
                }
            }
        }
    }
}
当我打开生成的文档并打开打印对话框(
文件
->
打印
)时,第一页不适合一页

更新1:
xlsheet::CopyTo
将页面设置从原始模板复制到生成的工作簿。因此,如果xltx模板具有页面设置
FitToPages(1,1)
,则生成的文档将具有相同的页面设置。尽管如此,当我打开ClosedXml生成的页面的打印预览时,它不适合一页所以,这是一个问题:原始工作簿和生成的工作簿具有相同的页面设置,但生成的工作表不适合一页。


所以有一些问题

  • 从生成的工作表的原始模板复制什么 合一页
  • 有没有办法做到这一点

解决方法


您可以使用检查/设置此选项

worksheet.PageSetup.PagesTall
worksheet.PageSetup.PagesWide
worksheet.PageSetup.FitToPages(1, 1)

(请参阅。)

是,ClosedXml在执行CopyTo时将丢失这些设置。一种特殊情况是,当PagesTall设置为空时,它必须在工作表副本上显式设置为-1,否则ClosedXml会将其设置为1

,这似乎是特定模板的问题。
worksheet.PageSetup.PagesTall
worksheet.PageSetup.PagesWide
worksheet.PageSetup.FitToPages(1, 1)