工作簿是用C#创建的,有两个工作表,总是要求用Book7、Book8等进行覆盖
我想创建一个包含一个工作表的Excel工作簿,然后保存数据并关闭它。但它会创建两张纸。第2页和第1页。但它成功地写入了数据。每次我手动删除xlsx文件时,它都会要求我覆盖Book8.xlsx,即使没有具有此名称的文件 我只需要一张工作表,我也希望它有一个特定的名称,而不是Sheet1工作簿是用C#创建的,有两个工作表,总是要求用Book7、Book8等进行覆盖,c#,excel,C#,Excel,我想创建一个包含一个工作表的Excel工作簿,然后保存数据并关闭它。但它会创建两张纸。第2页和第1页。但它成功地写入了数据。每次我手动删除xlsx文件时,它都会要求我覆盖Book8.xlsx,即使没有具有此名称的文件 我只需要一张工作表,我也希望它有一个特定的名称,而不是Sheet1 class Program { static void Main(string[] args) { Excel excel = new Excel(@"d:\Test.xlsx",
class Program
{
static void Main(string[] args)
{
Excel excel = new Excel(@"d:\Test.xlsx", 1);
excel.WriteToCell(0, 0, "Test2");
excel.Save();
excel.SaveAs(@"d:\Test.xlsx");
excel.Close();
}
}
内部Excel.cs
using Microsoft.Office.Interop.Excel;
using _Excel = Microsoft.Office.Interop.Excel;
namespace Excel
{
class Excel
{
_Application excel = new _Excel.Application();
Workbook wb;
Worksheet ws;
public Excel(string path, int Sheet)
{
excel.Visible = false;
wb = excel.Workbooks.Add();
ws = wb.Worksheets.Add();
}
public void WriteToCell(int i, int j, string s)
{
i++;
j++;
ws.Cells[i, j].Value = s;
}
public void Save()
{
wb.Save();
}
public void SaveAs(string path)
{
wb.SaveAs(path);
}
public void Close()
{
wb.Close();
}
}
}
删除行
ws=wb.Worksheets.Add()从Excel
构造函数中选择code>以不创建第二张工作表
public Excel(string path, int Sheet)
{
excel.Visible = false;
wb = excel.Workbooks.Add();
ws = (Worksheet)wb.Worksheets[1];
if (ws == null)
{
Console.WriteLine("Worksheet could not be created. Check that your office installation and project references are correct.");
}
}
要重命名工作表,请执行以下操作:
public RenameWorksheet(string newName)
{
ws.Name = newName;
}
如果从目录中删除文件,则应将其删除。但是,如果你有一个弹出消息说文件存在,你想替换它,那么我猜这可能是人为错误。也许你找错目录了?有时发生在我们当中最好的人身上;)无论哪种方式,作为程序员,您都可以选择删除文件(如果文件在创建之前存在),以避免人为错误:
if(File.Exists(fileName))
{
File.Delete(fileName);
}
如果不想替换它,也可以简单地重命名它
编辑
再次查看时,我意识到您正在创建一个新文件:
Excel excel = new Excel(@"d:\Test.xlsx", 1);
然后打电话:
excel.SaveAs(@"d:\Test.xlsx");
你还指望什么 谢谢你的回复。它工作得很好。但是,我仍然对此邮件有问题。此目录中没有Book8。您确定没有这样的文件吗?另外,在Main()
中创建新文件之前,如果尝试file.Exists(@“d:\Test.xlsx)
删除行excel.SaveAs(@“d:\Test.xlsx”);