Файл Excel, созданный с использованием C#, пуст и выделен серым цветом. - PullRequest
0 голосов
/ 07 мая 2020

У меня есть приведенный ниже код, который создает файл Excel. Он отлично создает файл в заданном месте. Однако, когда я открываю файл, файл отображается серым цветом. Он не показывает никаких листов.

       private void button1_Click(object sender, EventArgs e)
    {
        Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();

        if (xlApp == null)
        {
            MessageBox.Show("Excel is not properly installed!!");
            return;
        }


        Excel.Workbook xlWorkBook;
        Excel.Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;

        xlWorkBook = xlApp.Workbooks.Add(misValue);
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

        xlWorkSheet.Cells[1, 1] = "ID";
        xlWorkSheet.Cells[1, 2] = "Name";
        xlWorkSheet.Cells[2, 1] = "1";
        xlWorkSheet.Cells[2, 2] = "One";
        xlWorkSheet.Cells[3, 1] = "2";
        xlWorkSheet.Cells[3, 2] = "Two";



        xlWorkBook.SaveAs("d:\\csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
        xlWorkBook.Close(true, misValue, misValue);
        xlApp.Quit();

        Marshal.ReleaseComObject(xlWorkSheet);
        Marshal.ReleaseComObject(xlWorkBook);
        Marshal.ReleaseComObject(xlApp);

Изображение ниже

enter image description here

1 Ответ

0 голосов
/ 08 мая 2020

Следуя вашему формату, это может приблизить вас к решению.

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace WindowsFormsApp1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application application = null;
            Excel.Workbooks workbooks = null;
            Excel.Workbook workbook = null;
            Excel.Worksheet worksheet = null;

            application = new Excel.Application
            {
                Visible = true,
                ScreenUpdating = true,
                EnableEvents = true,
                DisplayAlerts = true,
            };

            if (application == null)
            {
                MessageBox.Show("Excel is not properly installed!!");
                return;
            }

            workbooks = application.Workbooks;
            application.Workbooks.Add();
            workbook = workbooks[1];
            worksheet = workbook.Worksheets[1];

            worksheet.Cells[1, 1] = "ID";
            worksheet.Cells[1, 2] = "Name";
            worksheet.Cells[2, 1] = "1";
            worksheet.Cells[2, 2] = "One";
            worksheet.Cells[3, 1] = "2";
            worksheet.Cells[3, 2] = "Two";

            workbook.SaveAs("d:\\csharp-Excel.xls", FileFormat: Excel.XlFileFormat.xlWorkbookNormal, AccessMode: Excel.XlSaveAsAccessMode.xlExclusive);
            workbook.Close(true);
            application.Quit();

            Marshal.ReleaseComObject(worksheet);
            Marshal.ReleaseComObject(workbook);
            Marshal.ReleaseComObject(application);
        }
    }
}
...