c# 用代码生成的excel表格,然后打开出错;把代码生成的删掉,手动新建一个,然后c#操作却可以打开。

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Reflection;

using Excel = Microsoft.Office.Interop.Excel;

namespace mytry

{
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();

        Excel.Application excelapp = null;
        Excel.Workbook workbook2 = null;
        Excel.Worksheet worksheet2 = null;

        excelapp = new Excel.Application();
        excelapp.Visible = false;        
        excelapp.DisplayAlerts = false;  

        string filepath = Program.AppPath + @"\mycollection\myconvert.xlsx";

        if (!Directory.Exists("D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy")))
        {
            Directory.CreateDirectory("D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy"));
        }

        if (!Directory.Exists("D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy") + @"\" + @DateTime.Now.ToString("MM")))
        {
            Directory.CreateDirectory("D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy") + @"\" + @DateTime.Now.ToString("MM"));
        }

        if (!Directory.Exists("D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy") + @"\" + @DateTime.Now.ToString("MM") + @"\" + @DateTime.Now.ToString("dd")))
        {
            Directory.CreateDirectory("D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy") + @"\" + @DateTime.Now.ToString("MM") + @"\" + @DateTime.Now.ToString("dd"));
        }

        string mystr = "D:" + @"\Data3\" + @DateTime.Now.ToString("yyyy") + @"\" + @DateTime.Now.ToString("MM") + @"\" + @DateTime.Now.ToString("dd") + @"\";

        //string mybi = Program.AppPath + @"\model.xlsx";
        string filepath2 = mystr + @DateTime.Now.ToString("yyyy_MM_dd") + ".xlsx";
        if (!File.Exists(mystr + @DateTime.Now.ToString("yyyy_MM_dd") + ".xlsx"))
        {  
            File.Create(filepath2);  //生成excel表格
        }

        //打开表格
        workbook2 = excelapp.Workbooks._Open(filepath2, Missing.Value, Missing.Value, Missing.Value, Missing.Value
            , Missing.Value, Missing.Value, Missing.Value, Missing.Value
            , Missing.Value, Missing.Value, Missing.Value, Missing.Value);

        worksheet2 = (Excel.Worksheet)workbook2.Worksheets[1];

        //试写入值
        worksheet2.Cells[1, 1] = "123";

        workbook2.Save();
        workbook2.Close();
        excelapp.Quit();

    }
}

}

图片说明

图片说明

图片说明

        File.Create(filepath2);  //生成excel表格

这个生成的是空白的文件,不是空白的excel文件