簡體   English   中英

如何讀取包含多個工作表的Excel工作表,以及僅編輯一個工作表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM