想問一下 如果是用C#新建EXCEL可以將值寫入EXCEL
也在C#參考中加入 參考 > COM > 選 Microsoft Excel 16.0 Object Library
但如果是既有的EXCEL 卻無法寫入值 程式執行都很正常
也將EXCEL 改成讀寫檔
下面是我的程式
一直找不出問題
麻煩各位大大 問題是在哪裡
試過用欄位寫入
跟矩陣寫入 都無法
aRangeChange.Value2 = "1111111111";
App.Cells[3, 1] = "BB";
//設定必要的物件
//按照順序分別是Application > Workbook > Worksheet > Range > Cell
//(1) Application :代表一個 Excel 程序。
//(2) WorkBook :代表一個 Excel 工作簿。
//(3) WorkSheet :代表一個 Excel 工作表,一個 WorkBook 包含好幾個工作表。
//(4) Range :代表 WorkSheet 中的多個單元格區域。
//(5) Cell :代表 WorkSheet 中的一個單元格。
Excel.Application App = new Excel.Application();
//取得欲寫入的檔案路徑
string strPath = "D:\\test.xlsx";
Excel.Workbook Wbook = App.Workbooks.Open(strPath);
// Excel.Workbook Wbook = App.Workbooks.Add();
// Excel.Worksheet Excel
//將欲修改的檔案屬性設為非唯讀(Normal),若寫入檔案為唯讀,則會無法寫入
System.IO.FileInfo xlsAttribute = new FileInfo(strPath);
xlsAttribute.Attributes = FileAttributes.Normal;
//取得batchItem的工作表
Excel.Worksheet Wsheet = (Excel.Worksheet)Wbook.Sheets["004"];
//取得工作表的單元格
//列(左至右)ABCDE、行(上至下)12345
Excel.Range aRangeChange = Wsheet.get_Range("B3");
//Excel.Worksheet[1, 1] = "Excel測試";
//在工作表的特定儲存格,設定內容
aRangeChange.Value2 = "1111111111";
App.Cells[3, 1] = "BB";
//設置禁止彈出保存和覆蓋的詢問提示框
Wsheet.Application.DisplayAlerts = false;
Wsheet.Application.AlertBeforeOverwriting = false;
//保存工作表,因為禁止彈出儲存提示框,所以需在此儲存,否則寫入的資料會無法儲存
Wbook.Save();
//關閉EXCEL
Wbook.Close();
//離開應用程式
App.Quit();
因為已經沒有Microsoft.Office.Interop.Excel這個了
因為已經沒有Microsoft.Office.Interop.Excel這個了
我用的是2017的版本
我用的是2017的版本
試試這個
我後面將 全部打開 再重新更新
.NET Core 執行階段
.NET Framework 3.5 開發工具
.NET Framework 4 目標套件
.NET Framework 4.5 目標套件
.NET Framework 4.5.1 目標套件
.NET Framework 4.5.2 目標套件
.NET Framework 4.6 目標套件
.NET Framework 4.6.1 SDK
.NET Framework 4.6.1 目標套件
.NET Framework 4.6.2 SDK
.NET Framework 4.6.2 目標套件
.NET Framework 4.7 SDK
.NET Framework 4.7 目標套件
.NET Framework 4.7.1 SDK
.NET Framework 4.7.1 目標套件
.NET Framework 4.7.2 SDK
.NET Framework 4.7.2 目標套件
https://docs.microsoft.com/zh-tw/visualstudio/vsto/office-primary-interop-assemblies?view=vs-2019
之後就可以 感謝各位的幫忙
App.Cells[3, 1] = "BB";
不應該是
Wsheet.Cells[3, 1] = "BB";
嗎?