Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(stream); if (workbook.Worksheets.Count <= 0)//表中有3个表,3个表中数据不一样 { //return "错误"; } MemoryStream testStream = new MemoryStream(); //内存流 Worksheet ss = workbook.Worksheets[0]; //获得sheet1 var s0 = ss.Cells; Worksheet ss1 = workbook.Worksheets[1];//获得表sheet2 var s1 = ss1.Cells; Worksheet ss2 = workbook.Worksheets[2];//获得sheet3 var s2 = ss2.Cells; //--01 ss.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html); var sstr0 = testStream.ToArray(); string htmlText0 = Encoding.UTF8.GetString(sstr0); //读取流 (html源文件) //--02 ss1.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html); var sstr1 = testStream.ToArray(); string htmlText1 = Encoding.UTF8.GetString(sstr1); //读取流 (html源文件) //--03 ss2.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html); //保存的数据都一样 var sstr2 = testStream.ToArray(); string htmlText2 = Encoding.UTF8.GetString(sstr2); //读取流 (html源文件)
为什么读取的数据 htmlText 内容 都是一样的???
读取的内容都一样,而且都不是excel里的内容。。。
怎样修改 获取单个sheet1 ?
@enych: 你的htmltext每次都是读取testStream,而这个testStream压根就没赋值,一直是个空吧?
你如果想输出每个sheet,起码挨个读取再输出吧。。。。
@一只小小小的菜鸟: ss1.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html); 这个不是保存到流中了吗
@enych: 这个保存方式对么。。。。没用过aspose,一般输出到流中,都是用的write。。
MemoryStream testStream = new MemoryStream(); //内存流
////--01
testStream.Flush(); //清空流
sheet1.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html); //表1保存到流中
var sstr0 = testStream.ToArray();
string htmlText0 = Encoding.UTF8.GetString(sstr0); //读取流 (html源文件)
write("sheet1", htmlText0);
////--02
testStream.Flush(); //清空流
sheet2.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html);//表2保存到流中
var sstr1 = testStream.ToArray();
string htmlText1 = Encoding.UTF8.GetString(sstr1); //读取流 (html源文件)
write("sheet2", htmlText1);
////--03
testStream.Flush(); //清空流
sheet3.Workbook.Save(testStream, Aspose.Cells.SaveFormat.Html); //表3保存到流中
var sstr2 = testStream.ToArray();
string htmlText2 = Encoding.UTF8.GetString(sstr2); //读取流 (html源文件)
write("sheet3", htmlText2);
经测试
输出的三个文件中, 第一个文件是1个第3表中数据, 第二个文件是2个第3表中数据,第三个文件是3个第3表中数据,