[英]How to read an Excel sheet with multiple sheets, and edit only a single sheet
我有一個程序可以使用TestWriter從XML工作表中提取值並將其寫入Excel工作表中。
FileStream ostrm;
StreamWriter strm;
TextWriter txtWrt = Console.Out;
ostrm = new FileStream(path + "\\Output.xls", FileMode.Truncate, FileAccess.Write);
現在輸出文件Output.xls具有多個選項卡,但是我只需要截斷並寫入第一張工作表,而其他選項卡則保持不變。 我使用下面的代碼,但刪除了所有其他標簽並編輯了第一個標簽。
public Excel.Application app = null;
public Excel.Workbook workBook = null;
public Excel.Worksheet workSheet = null;
app = new Excel.Application();
workBook = app.Workbooks.Add();
workSheet = (Worksheet)workBook.Worksheets.get_Item(1);
workBook.SaveAs(path+ "\\Output.xls");
workBook.Close();
app.Quit();
我需要找到一種可以避免這種情況的方法。
謝謝您的期待!
MSDN聲明FileMode.Truncate“指定操作系統應打開現有文件。打開文件時,應將其截斷以使其大小為零字節。” 您可以嘗試改為FileMode.OpenOrCreate,然后在寫入之前清除選項卡。
您不能以描述的方式使用truncate命令。 它用於文本文件。 首先,為什么要使用FileStream?
您應該使用XLSX開放xml格式Excel文件類型,並使用開放XML SDK。 這是一篇文章,說明如何http://www.codeproject.com/Articles/670141/Read-and-Write-Microsoft-Excel-with-Open-XML-SDK
雖然XLS格式可以接受xml數據,但它不能像XLSX格式文件那樣高效地互操作。 盡管您可以避免使用文件流進行小操作,但它受到限制,並且您已經遇到了這些限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.