[英]convert excel spreadsheet to PDF Interop.Excel alternative in C#
[英]Saving Excel Spreadsheet using Interop C#
static void Main()
{
Application excelapp = new Application();
Workbook book = excelapp.Workbooks.Open(@"C:\HWYFAB.xlsx",
0, false, 5, "", "", false, XlPlatform.xlWindows , "",
true, false, 0, true, false, false);
Worksheet sheet = (Worksheet)book.Sheets[1];
Range cell = (Range)sheet.Cells[3, 2];
Console.WriteLine(cell.Text);
cell.ClearContents();
book.Close(true, "HWYFAB.xlsx", false);
excelapp.Quit();
}
該程序按預期運行和退出。 它會將單元格B3中的正確值打印到控制台。 關閉它時詢問我是否要替換現有文件。 我點擊是。 當我在Excel中打開電子表格時,盡管有cell.ClearContents(),但該值仍然在單元格B3中。
有什么想法嗎?
您對cell.ClearContents()
調用將清除單元格中的公式和值常量。 這應該絕對有效。 你可以在調用cell.Value2 == null
cell.ClearContents()
通過測試cell.Value2 == null
來確認這一點,這應該是true
。
我相信你的代碼的問題是在book.Close(true, "HWYFAB.xlsx", false)
的調用中。 問題是你明確地傳遞了工作簿的名稱,但是你離開了這條路。 (請注意,當您打開工作簿時,您將包括完整路徑,包括“C:\\”目錄。)通過在保存時離開工作簿的完整路徑,您將保存到當前目錄,這可能是“我的文件“或其他任何地方。
如果要在原始位置保存工作簿,則應將Type.Missing
傳遞給Filename
參數。 例如:
book.Close(true, Type.Missing, false);
這個想法沒有經過考驗,但我相信這對你有用。 試試看...
- 邁克
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.