[英]How to solve HRESULT: 0x800A03EC error?
我試圖使用C#在Excel中寫入大數據。(行數小於65530)
我使用64位計算機和Microsoft Office 2007。
當我使用32位計算機和Microsoft Office 2007時,這不是問題。
但是,當我更換計算機后,出現了HRESULT錯誤:0x800A03EC。
我嘗試調試,發現問題是
xlWorksheet.get_Range("A2", columns[dt.Columns.Count - 1] +
(dt.Rows.Count + 1).ToString()).Value = data;
我怎么解決這個問題?
這是我的代碼。
try
{
xlApp = new Application();
xlWorkbook = xlApp.Workbooks.Add(true);
xlWorksheet = xlWorkbook.ActiveSheet;
xlApp.Visible = false;
xlApp.UserControl = false;
String[] headers = new String[dt.Columns.Count];
String[] columns = new String[dt.Columns.Count];
String[,] data = new String[dt.Rows.Count, dt.Columns.Count];
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
headers[i] = dt.Columns[i].ColumnName;
columns[i] = ExcelColumnIndexToName(i);
}
for (int rowIndex = 0; rowIndex < dt.Rows.Count; rowIndex++)
{
for (int colIndex = 0; colIndex < dt.Columns.Count; colIndex++)
{
data[rowIndex, colIndex] = dt.Rows[rowIndex][colIndex].ToString();
}
}
}
xlWorksheet.Cells.NumberFormat = @"@";
xlWorksheet.Columns.ColumnWidth = 10;
xlWorksheet.Rows.RowHeight = 15;
xlWorksheet.get_Range("A1", columns[dt.Columns.Count - 1] + "1").Value2 = headers;
xlWorksheet.get_Range("A2", columns[dt.Columns.Count - 1] + (dt.Rows.Count + 1).ToString()).Value = data;
xlWorkbook.SaveAs(fileName);
我在“保護”工作簿時遇到了問題
Workbook wb = excel.Workbooks.Open(fileFullPath);
wb.Unprotect("xxx");
我所做的只是取消保護它,錯誤消失了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.