在 C# 中使用 EPPlus 更新 Excelsheet
Updating the excelsheet using EPPlus in c#
我有一个 excel 文件,其中包含名为 Data
的 sheet。此 sheet 已包含少量数据。我需要打开这个文件并在其中添加更多数据。我试过搜索这个,但每个人都只是在他们的工作簿中创建新的 sheets。我需要更新当前 sheet。下面是我的代码:
MemoryStream ms = new MemoryStream();
using (FileStream fs = File.OpenRead(@"Path\File.xlsx")
using (ExcelPackage excelPackage = new ExcelPackage(fs))
{
ExcelWorkbook excelWorkBook = excelPackage.Workbook;
ExcelWorksheet excelWorksheet = excelWorkBook.Worksheets.First();
excelWorksheet.Cells[1, 1].Value = "Test";
excelWorksheet.Cells[3, 2].Value = "Test2";
excelWorksheet.Cells[3, 3].Value = "Test3";
excelPackage.SaveAs(ms);
}
但它没有更新 sheet。我没有做错什么。谁能帮帮我。谢谢
您正在这样做:
- 在内存中创建一个
MemoryStream
对象来存储二进制数据。
- 打开文件并将其读入
MemoryStream
对象。
- 根据
MemoryStream
对象中的数据创建一个 ExcelPackage
对象。
- 更改电子表格。
- 将更改保存回
MemoryStream
对象。
这就是电子表格文件未更新的原因。
使用FileInfo
直接用ExcelPackage
打开文件:
// using System.IO;
FileInfo file = new FileInfo(@"Path\File.xlsx");
using (ExcelPackage excelPackage = new ExcelPackage(file))
{
ExcelWorkbook excelWorkBook = excelPackage.Workbook;
ExcelWorksheet excelWorksheet = excelWorkBook.Worksheets.First();
excelWorksheet.Cells[1, 1].Value = "Test";
excelWorksheet.Cells[3, 2].Value = "Test2";
excelWorksheet.Cells[3, 3].Value = "Test3";
excelPackage.Save();
}
Try this
var file = new FileInfo(path);
if (file .Exists)
{
using (ExcelPackage excelPackage = new ExcelPackage(file))
{
ExcelWorksheet ws = excelPackage.Workbook.Worksheets.First();
ws.Cells[1,1].Value = "Test1";
excelPackage.Save();
}
}
我有一个 excel 文件,其中包含名为 Data
的 sheet。此 sheet 已包含少量数据。我需要打开这个文件并在其中添加更多数据。我试过搜索这个,但每个人都只是在他们的工作簿中创建新的 sheets。我需要更新当前 sheet。下面是我的代码:
MemoryStream ms = new MemoryStream();
using (FileStream fs = File.OpenRead(@"Path\File.xlsx")
using (ExcelPackage excelPackage = new ExcelPackage(fs))
{
ExcelWorkbook excelWorkBook = excelPackage.Workbook;
ExcelWorksheet excelWorksheet = excelWorkBook.Worksheets.First();
excelWorksheet.Cells[1, 1].Value = "Test";
excelWorksheet.Cells[3, 2].Value = "Test2";
excelWorksheet.Cells[3, 3].Value = "Test3";
excelPackage.SaveAs(ms);
}
但它没有更新 sheet。我没有做错什么。谁能帮帮我。谢谢
您正在这样做:
- 在内存中创建一个
MemoryStream
对象来存储二进制数据。 - 打开文件并将其读入
MemoryStream
对象。 - 根据
MemoryStream
对象中的数据创建一个ExcelPackage
对象。 - 更改电子表格。
- 将更改保存回
MemoryStream
对象。
这就是电子表格文件未更新的原因。
使用FileInfo
直接用ExcelPackage
打开文件:
// using System.IO;
FileInfo file = new FileInfo(@"Path\File.xlsx");
using (ExcelPackage excelPackage = new ExcelPackage(file))
{
ExcelWorkbook excelWorkBook = excelPackage.Workbook;
ExcelWorksheet excelWorksheet = excelWorkBook.Worksheets.First();
excelWorksheet.Cells[1, 1].Value = "Test";
excelWorksheet.Cells[3, 2].Value = "Test2";
excelWorksheet.Cells[3, 3].Value = "Test3";
excelPackage.Save();
}
Try this
var file = new FileInfo(path);
if (file .Exists)
{
using (ExcelPackage excelPackage = new ExcelPackage(file))
{
ExcelWorksheet ws = excelPackage.Workbook.Worksheets.First();
ws.Cells[1,1].Value = "Test1";
excelPackage.Save();
}
}