使用带有Title的closedxml将格式导出为ex​​cel

时间:2016-03-17 16:31:56

标签: export-to-excel closedxml

我使用closedxml导出到excel,我的代码工作正常,但是我希望使用标题格式化导出的excel文件,如果可能的话,添加图像的backgroundcolour格式。

private void button4_Click(object sender, EventArgs e)
    {
        string svFileName = GetSaveFileName(Convert.ToInt32(comboBox1.SelectedValue));
        DataTable dt = new DataTable();
        foreach (DataGridViewColumn col in dataGridView1.Columns)
        {
            dt.Columns.Add(col.HeaderText);
        }

        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            DataRow dRow = dt.NewRow();
            foreach (DataGridViewCell cell in row.Cells)
            {
                dRow[cell.ColumnIndex] = cell.Value;
            }
            dt.Rows.Add(dRow);
        }
        //if (!Directory.Exists(folderPath))
        //{
        //    Directory.CreateDirectory(folderPath);
        //} 
        if (svFileName == string.Empty)
        {
            DateTime mydatetime = new DateTime();
            SaveFileDialog objSaveFile = new SaveFileDialog();
            objSaveFile.FileName = "" + comboBox1.SelectedValue.ToString() + "_" + mydatetime.ToString("ddMMyyhhmmss") + ".xlsx";
            objSaveFile.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            objSaveFile.FilterIndex = 2;
            objSaveFile.RestoreDirectory = true;
            string folderpath = string.Empty;
            Cursor.Current = Cursors.WaitCursor;
            if (objSaveFile.ShowDialog() == DialogResult.OK)
            {
                Cursor.Current = Cursors.WaitCursor;
                FileInfo fi = new FileInfo(objSaveFile.FileName);
                folderpath = fi.DirectoryName;
                int rowcount = 0;
                int sheetcount = 1;
                int temprowcount = 0;
                using (XLWorkbook wb = new XLWorkbook())
                {
                    var ws = wb.Worksheets.Add(dt,comboBox1.Text.ToString() + sheetcount.ToString());

ws.Row(1).Height = 50;                         //ws.FirstRow()合并();

                    ws.Row(1).Merge();
                    //ws.Row(1).Value = comboBox1.Text.ToString();
                    //ws.Row(1).Cell(1).im
                    ws.Row(1).Cell(1).Value = comboBox1.Text.ToString();
                    ws.Row(1).Cell(1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                    ws.Row(1).Cell(1).Style.Alignment.Vertical=XLAlignmentVerticalValues.Center;
                    ws.Row(1).Cell(1).Style.Fill.BackgroundColor = XLColor.Red;
                    ws.Row(1).Cell(1).Style.Font.FontColor = XLColor.White;
                    ws.Row(1).Cell(1).Style.Font.FontSize = 21;
                    ws.Row(1).Cell(1).Style.Font.Bold = true;

                    ws.Column(1).Merge();
                    ws.Column(1).Style.Fill.BackgroundColor = XLColor.Red;
                    ws.Cell(2, 2).InsertTable(dt);                
                    wb.SaveAs(fi.ToString());

                    //wb.SaveAs(folderpath + "\\" + comboBox1.SelectedItem.ToString() + "_" + mydatetime.ToString("ddMMyyhhmmss") + ".xlsx");
                    //rowcount = 0;
                    //sheetcount++;
                    //}
                }
                //}
                MessageBox.Show("Report (.xlxs) Saved Successfully.");
            }
        }
        else
        {
            Cursor.Current = Cursors.WaitCursor;
            string folderpath = string.Empty;
            folderpath = Properties.Settings.Default.ODRSPath + "\\" + svFileName;
            using (XLWorkbook wb = new XLWorkbook())
            {
                //DateTime mydatetime = new DateTime();
                wb.Worksheets.Add(dt, comboBox1.SelectedItem.ToString());
                wb.SaveAs(folderpath);
            }
            MessageBox.Show("Report (.xlxs) Saved Successfully.");
        }
    }

enter image description here

0 个答案:

没有答案