ExcelLibrary 导出Excel报 “excel发现不可读取的内容”错误
来源:互联网 发布:三知四会一联通消防 编辑:程序博客网 时间:2024/05/17 01:15
今天使用ExcelLibrary 做导出Excel,可是导出的数据用Excel2007以上版本打开的时候,总是报 “excel发现不可读取的内容”错误,令人非常费解,至今不知道是什么原因。
解决办法:
那就是通过限制导出数据的最少列数,在这段代码里限制为9,其实这个数字也不是准确的,但是是可以的,比如其它数字7,8也是可以,也就是通过这样一个技巧解决了,
还有,还不行的话就加行,把行也设置为最小比如30行
ExcelLibrary.SpreadSheet.Workbook workbook = new ExcelLibrary.SpreadSheet.Workbook();
// 参数已生成工作表
ExcelLibrary.SpreadSheet.Worksheet worksheet = new ExcelLibrary.SpreadSheet.Worksheet("FirstSheet");
#region 这一段代码没用,但是请不要删除,因为这里体现了一些数据类型显示的方法思想,要懂得举一反三,这里面还是有值得学习和参考的东西的
//worksheet.Cells[0, 1] = new Cell((short)1);
//worksheet.Cells[2, 0] = new Cell(9999999);
//worksheet.Cells[3, 3] = new Cell((decimal)3.45);
//worksheet.Cells[2, 2] = new Cell("Text string");
//worksheet.Cells[2, 4] = new Cell("Second string");
//worksheet.Cells[4, 0] = new Cell(32764.5, "#,##0.00");
//worksheet.Cells[5, 1] = new Cell(DateTime.Now, @"YYYY\-MM\-DD");
#endregion
int minColumnCount = 9;//这里设置为9,意思是导出的文档至少有9(这个数字不是一定的,7,8也都可以)列,如果数据不够9列,则为空。为什么这样做?因为这个导出在Excel2007以上版本中,少于9列竟然打不开,报错为“发现不可读取的内容 ”,没有找到好的解决办法,因此用这样一个技巧解决它
if (minColumnCount < dt.Columns.Count)
{
minColumnCount = dt.Columns.Count;
}
for (int j = 0; j < minColumnCount; j++)
{
if (j < dt.Columns.Count)
{
worksheet.Cells[0, j] = new Cell(dt.Columns[j].Caption);
int width = dicColumnWidth[dt.Columns[j].ColumnName] * 40;
if (width > 65535)//ushort类型的最大值为65535,所以要有这个判断,否则超过这个数字下面的类型转换就会报错
width = 65535;
worksheet.Cells.ColumnWidth[(ushort)j] = (ushort)width;//这里的ushort类型的数据和int的数据大小好像不一样,只要放大才能达到页面正常显示的效果,所以这里乘以了40,也就是放大了40倍
}
else
{
worksheet.Cells[0, j] = new Cell("");
}
}
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < minColumnCount; j++)
{
string text = "";
if (j < dt.Columns.Count)
{
if (dt.Rows[i][j] != DBNull.Value && dt.Rows[i][j] != null)
{
text = dt.Rows[i][j].ToString();
text = text.Replace(" ", "");
}
worksheet.Cells[i + 1, j] = new Cell(text); ;
}
else
{
worksheet.Cells[i + 1, j] = new Cell(""); ;
}
}
}
workbook.Worksheets.Add(worksheet);
workbook.Save("c:/a.xls");
- ExcelLibrary 导出Excel报 “excel发现不可读取的内容”错误
- excel文件中发现不可读取的内容【样式丢失】
- 利用ExcelLibrary导入导出excel
- web工程导出Excel文件打开时显示“Excel在 ** 中发现不可读取的内容。是否恢复此工作簿的内容?....”
- 解决Excel 2007的"有 XML 错误的 /xl/sharedStrings.xml"问题 (“发现不可读取的内容,是否回复此工作薄的内容...")
- java tomcat jboss excel 2007 xlsx 下载 发现不可读取内容 解决办法
- 读取Excel的内容
- java下载的excel显示发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作薄的来源,请单击‘是’。”
- Java Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击"是"
- Java中读取Excel文件的内容和导出数据到Excel文件
- 读取excel表格的内容
- c# 读取 Excel的内容
- python读取excel的内容
- vb读取excel的内容
- C#读取Excel,导出Excel
- C#读取Excel,导出Excel
- Npoi导出Excel、读取Excel
- 【excel】读取excel 中内容
- iOS常用加密方法(aes、md5、base64)
- csdn写博客插入图真麻烦啊
- Remove MediaShow 6 with WindowsUninstaller.Org Removal Tips
- iOS多线程编程之NSOperation和NSOperationQueue的使用
- Loadrunner中illegal hex chracters in escape的解决办法
- ExcelLibrary 导出Excel报 “excel发现不可读取的内容”错误
- java学习之屌丝逆袭
- sed与awk去除重复行
- 获得document的iframe时有两种方法
- 序列化 Serializable
- anisotropic diffusion
- Hudson与checkstyle的集成
- HQL中的Like查询需要注意的地方及详细示例 .
- Windows下编译libTIFF