Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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# 如何使用epplus从datagrid保存excel?_C#_Epplus - Fatal编程技术网

C# 如何使用epplus从datagrid保存excel?

C# 如何使用epplus从datagrid保存excel?,c#,epplus,C#,Epplus,我使用按钮获取此事件,它返回到“System.ArgumentException:'列超出范围'” 你能帮我解决这个问题吗? 非常感谢。我想这一定与您传递的数据表有关。您正在使用的数据是什么样子的 下面的示例使用ws.Cells[1,1]或ws.Cells[“A1”] 类程序 { 静态void Main(字符串[]参数) { ExcelPackage p=新的ExcelPackage(); 尝试 { p=新的ExcelPackage(); } 捕获(System.IO.iofex异常) { //

我使用按钮获取此事件,它返回到“System.ArgumentException:'列超出范围'” 你能帮我解决这个问题吗?
非常感谢。

我想这一定与您传递的数据表有关。您正在使用的数据是什么样子的

下面的示例使用
ws.Cells[1,1]或ws.Cells[“A1”]

类程序
{
静态void Main(字符串[]参数)
{
ExcelPackage p=新的ExcelPackage();
尝试
{
p=新的ExcelPackage();
}
捕获(System.IO.iofex异常)
{
//文件已打开
Console.WriteLine(“文件打开时无法处理。请关闭文件并重试。”);
回来
}
捕获(System.IO.InvalidDataException)
{
//无效的文件类型
Console.WriteLine(“无效的文件类型。请重试。”);
回来
}
捕获(例外情况除外)
{
WriteLine(“未处理的异常。请与开发人员联系”);
回来
}
var wb=p.工作簿;
//创建表
DataTable dt=新的DataTable();
添加(新数据列(“Col1”));
添加(新数据列(“Col2”);
添加(新数据列(“Col3”);
添加(新数据列(“Col4”);
添加(新数据列(“Col5”);
//填表
数据行工作行;

对于(int i=0;i Datatable output?我写入一个数据网格并分配一个数据表。我只是尝试使用它,但我不知道它,因为我知道错误是由于列名不可用。我将单元格[“A1”]编辑为单元格[1,1]或仅为单元格。所有这些都会返回带有
excel工作表ws=excel.工作簿.Worksheets.Add(“演示”)的结果;ws.Cells[“A1”].LoadFromDataTable(data,true);
您的想法是创建数据网格中的所有数据并将其填充到新的excel文件中吗?我希望代码能够做到这一点,而不是手工制作列和行。我的意见是保存数据网格(wpf)的数据将表格格式化为excel文件并选择其位置。是的,我的想法是创建数据并将其填充到新的excel文件中。我创建了datatable,以便提供一个示例。您只需将数据表传递到“LoadFromDataTable()”方法,而不是像我所做的那样创建一个。
void Export()
    {
        string filePath = "";
        SaveFileDialog dialog = new SaveFileDialog();
        dialog.Filter = "Excel | *.xlsx | Excel 2003 | *.xls";
        if (dialog.ShowDialog() == true)
        {
            filePath = dialog.FileName;
        }
        if (string.IsNullOrEmpty(filePath))
        {
            MessageBox.Show("Link is not valid");
            return;
        }           
        DataTable dt = new DataTable();
        dtgExcel.DataContext = dt;
        using (ExcelPackage excel = new ExcelPackage())
        {
            var ws = excel.Workbook.Worksheets.Add("Sheet1");
            ws.Cells[1,1].LoadFromDataTable(dt, true);
            ws.Cells.AutoFitColumns();
            using (ExcelRange objRange = ws.Cells["A1:XFD1"])
            {
                objRange.Style.Font.Bold = true;
                objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
                objRange.Style.Fill.PatternType = ExcelFillStyle.Solid;            objRange.Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#B7DEE8"));
            }
            FileStream file = File.Create(filePath);
            file.Close();
            File.WriteAllBytes(filePath, excel.GetAsByteArray());
        }
        MessageBox.Show("It's successful!!");               
    }
 class Program
{
    static void Main(string[] args)
    {
        ExcelPackage p = new ExcelPackage();
        try
        {
            p = new ExcelPackage();
        }
        catch (System.IO.IOException fex)
        {
            //file is open
            Console.WriteLine("Can not process while file is open.Please close file and try again.");
            return;
        }
        catch (System.IO.InvalidDataException lex)
        {
            //invalid file type
            Console.WriteLine("Invalid File Type. Please Try Again.");
            return;
        }
        catch (Exception ex)
        {
            Console.WriteLine("Unhandled Exception. Please Contact Developer.");
            return;
        }

        var wb = p.Workbook;            

        //create table
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("Col1"));
        dt.Columns.Add(new DataColumn("Col2"));
        dt.Columns.Add(new DataColumn("Col3"));
        dt.Columns.Add(new DataColumn("Col4"));
        dt.Columns.Add(new DataColumn("Col5"));

        //fill table
        DataRow workRow;
        for (int i = 0; i <= 9; i++)
        {
            workRow = dt.NewRow();
            workRow["Col1"] = string.Format("Row {0} Col 1", i);
            workRow["Col2"] = string.Format("Row {0} Col 2", i);
            workRow["Col3"] = string.Format("Row {0} Col 3", i);
            workRow["Col4"] = string.Format("Row {0} Col 4", i);
            workRow["Col5"] = string.Format("Row {0} Col 5", i);
            dt.Rows.Add(workRow);
        }

        //create worksheet
        var ws = wb.Worksheets.Add("Foo");

        //load data into cell A1            
        ws.Cells["A1"].LoadFromDataTable(dt, true);
        ws.Cells.AutoFitColumns();
        using (ExcelRange objRange = ws.Cells["A1:XFD1"])
        {
            objRange.Style.Font.Bold = true;
            objRange.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
            objRange.Style.VerticalAlignment = ExcelVerticalAlignment.Center;
            objRange.Style.Fill.PatternType = ExcelFillStyle.Solid;
            objRange.Style.Fill.BackgroundColor.SetColor(System.Drawing.ColorTranslator.FromHtml("#B7DEE8"));
        }
        p.SaveAs(new FileInfo(@"C:\FooFolder\Foo.xlsx"));

        Console.WriteLine("It's Successful");
    }              
}