0
我想下面的代碼,但有一個例外,Excel單元格時是個例外:有解鎖使用C#
無法更改合併單元格的一部分。
例外,在這條線被拋出:
PortfolioSheet.get_Range("A1",missing).EntireColumn.Locked = false;
的完整代碼:
Microsoft.Office.Interop.Excel.Application ThisApplication = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook ThisWorkBook;
string _stFileName = Server.MapPath("/ExcelTemplate/EFIRM_Facility_Template.xlsm");
object missing = System.Reflection.Missing.Value;
ThisWorkBook = ThisApplication.Workbooks.Open(_stFileName, missing, missing, 5, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing, missing);
Microsoft.Office.Interop.Excel.Worksheet PortfolioSheet = (Microsoft.Office.Interop.Excel.Worksheet)ThisWorkBook.Sheets[1]; //fill portfoliosheet
//PortfolioSheet.get_Range("A1" + dtDynamicForPortfolio.Rows.Count + "").Locked = false;
/* This line */
PortfolioSheet.get_Range("A1",missing).EntireColumn.Locked = false;
PortfolioSheet.get_Range("B1", "H1"+dtDynamicForPortfolio.Rows.Count).Locked = false;
int iCol = 1;
int iRow = 0;
foreach (DataRow r in dtDynamicForPortfolio.Rows)
{
iRow++;
iCol = 0;
foreach (DataColumn c in dtDynamicForPortfolio.Columns)
{
iCol++;
PortfolioSheet.Cells[iRow + 1, iCol] = Convert.ToString(r[c.ColumnName]);
// ThisSheet.get_Range("A1", "C3").Locked = true;
}
}
PortfolioSheet.get_Range("A1", missing).EntireColumn.Locked = true;
PortfolioSheet.get_Range("B1", "H1").Locked = true;
我怎樣才能避免這種情況?
[unmerge](http://office.microsoft.com/en-gb/excel-help/merge-and-unmerge-cells-HP005251021.aspx) – 2013-06-24 13:48:19
如果您取消合併整個工作表,您可能需要一種方法使這些合併的單元格返回到工作表。 –