错误,此文件无法打开

jiangban1 2011-04-19 09:12:22



我导出数据时 Excel文件打不开。有一个问题是如果我选择2009年它能导出数据,而2009年以下,下载下来的Excel文件打开时却报那样的错。求解。。。


Worksheet sheet = sheets.Add("101");
sheet.Table.DefaultRowHeight = 14.25F;
sheet.Table.DefaultColumnWidth = 60.75F;
sheet.Table.ExpandedColumnCount = objDataSet.Tables[0].Columns.Count > 0 ? objDataSet.Tables[0].Columns.Count : 10;//这个的长度为 :从2001到选择年份的年数+1;比如选2009年 那就是: 9+1=10;
sheet.Table.ExpandedRowCount = 5 + objDataSet.Tables[0].Rows.Count;//这个长度可以当做36
sheet.Table.FullColumns = 1;
sheet.Table.FullRows = 1;
sheet.Table.StyleID = "s68";
WorksheetColumn column0 = sheet.Table.Columns.Add();
column0.Width = 52;
column0.StyleID = "s68";
WorksheetColumn column1 = sheet.Table.Columns.Add();
column1.Width = 48;
column1.StyleID = "s68";
column1.Span = 6;
WorksheetColumn column2 = sheet.Table.Columns.Add();
column2.Index = 9;
column2.Width = 53;
column2.StyleID = "s68";
WorksheetColumn column3 = sheet.Table.Columns.Add();
column3.Width = 48;
column3.StyleID = "s68";
// -----------------------------------------------
WorksheetRow Row0 = sheet.Table.Rows.Add();
Row0.Height = 21;
Row0.AutoFitHeight = false;
WorksheetCell cell;
cell = Row0.Cells.Add();
cell.StyleID = "s70";
cell.Data.Type = DataType.String;
cell.Data.Text = "年末实有房屋建筑面积(101)";
cell.MergeAcross = sheet.Table.ExpandedColumnCount - 1;
// -----------------------------------------------
WorksheetRow Row1 = sheet.Table.Rows.Add();
Row1.Height = 15;
Row1.AutoFitHeight = false;
for (int i = 1; i < sheet.Table.ExpandedColumnCount - 1; i++)
{
cell = Row1.Cells.Add();
cell.StyleID = "s71";
}
cell = Row1.Cells.Add();
cell.StyleID = "s74";
cell.Data.Type = DataType.String;
cell.Data.Text = "单位:万平方米";
cell.MergeAcross = 1;
// -----------------------------------------------
WorksheetRow Row2 = sheet.Table.Rows.Add();
Row2.AutoFitHeight = false;
cell = Row2.Cells.Add();
cell.StyleID = "m26499080";
cell.Data.Type = DataType.String;
cell.Data.Text = "地区";
cell.MergeDown = 1;
for (int i = 1; i < sheet.Table.ExpandedColumnCount; i++)
{
cell = Row2.Cells.Add();
cell.StyleID = "m26499100";
cell.Data.Type = DataType.String;
cell.Data.Text = "200" + i + "年";
cell.MergeDown = 1;
}
// -----------------------------------------------
WorksheetRow Row3 = sheet.Table.Rows.Add();
Row3.AutoFitHeight = false;

// -----------------------------------------------
WorksheetRow Row4 = sheet.Table.Rows.Add();
Row4.Height = 18;
Row4.AutoFitHeight = false;
Row4.Cells.Add("全国", DataType.String, "s91");

for (int i = 1; i < sheet.Table.ExpandedColumnCount; i++)
{
cell = Row4.Cells.Add();
cell.StyleID = "s92";
cell.Data.Type = DataType.Number;
cell.Data.Text = "0";
cell.Formula = "=SUM(R[1]C:R[31]C)";
}

// -----------------------------------------------
for (int i = 0; i < objDataSet.Tables["BuildingArea"].Rows.Count; i++)
{//行的循环次数(从4开始到31)

WorksheetRow Row5 = sheet.Table.Rows.Add();
Row5.Height = 18;
Row5.AutoFitHeight = false;
Row5.Cells.Add(objDataSet.Tables["BuildingArea"].Rows[i][0].ToString(),DataType.String, "s91");
for (int j = 1; j < sheet.Table.ExpandedColumnCount; j++)
{
cell = Row5.Cells.Add(objDataSet.Tables["BuildingArea"].Rows[i][j].ToString(), DataType.Number, "s92");
cell.StyleID = "s92";
}
}
//// -----------------------------------------------
//WorksheetRow Row36 = sheet.Table.Rows.Add();
//Row36.AutoFitHeight = false;
//cell = Row36.Cells.Add();
//cell.StyleID = "s93";
//cell.Index = 6;
//cell = Row36.Cells.Add();
//cell.StyleID = "s93";
//cell = Row36.Cells.Add();
//cell.StyleID = "s93";
//cell = Row36.Cells.Add();
//cell.StyleID = "s93";
//cell = Row36.Cells.Add();
//cell.StyleID = "s93";

// -----------------------------------------------
// Options
// -----------------------------------------------
sheet.Options.ProtectObjects = false;
sheet.Options.ProtectScenarios = false;
sheet.Options.PageSetup.Layout.CenterHorizontal = true;
sheet.Options.PageSetup.Layout.CenterVertical = true;
sheet.Options.PageSetup.Header.Margin = 0.511811F;
sheet.Options.PageSetup.Footer.Margin = 0.511811F;
sheet.Options.PageSetup.PageMargins.Bottom = 0.7874016F;
sheet.Options.PageSetup.PageMargins.Left = 0.3543307F;
sheet.Options.PageSetup.PageMargins.Right = 0.7480315F;
sheet.Options.PageSetup.PageMargins.Top = 0.7874016F;
sheet.Options.Print.PaperSizeIndex = 9;
sheet.Options.Print.ValidPrinterInfo = true;
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangban1 2011-04-20
  • 打赏
  • 举报
回复
来晚啦 帖都结了
netxiaoma 2011-04-20
  • 打赏
  • 举报
回复

我来学习的。
jiangban1 2011-04-20
  • 打赏
  • 举报
回复
不是,最后发现时因为WorksheetColumn的定义与实际长度有冲突。。 这个东西是一个转换Excel文件的工具,以前也没用过,不了解。。。头痛了一天啊。
子夜__ 2011-04-19
  • 打赏
  • 举报
回复
有可能是EXCEL文件损坏。
kingdom_0 2011-04-19
  • 打赏
  • 举报
回复
sheet.Table.ExpandedColumnCount
好好分析一下
再试试2010年,试试看能不能行。
jiangban1 2011-04-19
  • 打赏
  • 举报
回复
我觉得应该是这个sheet.Table.ExpandedColumnCount长度哪里出问题了。。但是就是不知道在哪儿。
因为时间就影响这个长度。。
jiangban1 2011-04-19
  • 打赏
  • 举报
回复
不会,那个事件是可以选择的,我选择2009的时候能下载数据下来,2008就不行了。虽然文件能下载下来,但是打不开。
jiangban1 2011-04-19
  • 打赏
  • 举报
回复
恩,后缀名都是.xls啊
ycproc 2011-04-19
  • 打赏
  • 举报
回复
是不是excel的文件本身就 不是一个版本了
porschev 2011-04-19
  • 打赏
  • 举报
回复

2009年excel文件和现在的excel文件后缀名一样吧?
jiangban1 2011-04-19
  • 打赏
  • 举报
回复
折腾了半天 终于搞定啦。。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧