解决方案 »
- 从excel导入到数据库中 以第三行作为表头
- 如何根据查询出来字段动态显示查询行的颜色????
- 帮忙解决一下toolstrip 控件问题,在线等!发过一次了,怎么没人回啊,
- 急找CRM软件,有合适的请帮我推荐下
- 在同一台服务器上的两个web应用程序之间怎么共享session呀,各位大侠是怎么解决的????
- ##################请问DataTable.Select()函数#####################
- WPF反射布局控件问题
- WebForm的datagrid的问题
- 请高手赐教:怎样在treeview中刷新数据?
- 如何压缩jpeg图片文件存储的质量,就像图片减肥软件一样。
- 有人会做百度验证码识别吗?
- httpwebRequest 取cookie 丢失一半啊!
using (FileStream fsxls = File.OpenRead(@"C:....xls"))
{
//从本地资源中获取文件流 到 内存中工作簿
IWorkbook wk = new HSSFWorkbook(fsxls);
//遍历该工作簿中所有表
for (int i = 0; i < wk.NumberOfSheets; i++)
{
Console.WriteLine("==========================================");
//内存中创建一张临时表用来存储 内存中的工作簿中的每张表的数据
ISheet sheet = wk.GetSheetAt(i);
//遍历临时表中的所有行
for (int j = 0; j < sheet.LastRowNum; j++)
{
//内存中创建临时的一行用来存储 临时表中的每行的数据
IRow row = sheet.GetRow(j);
//遍历改行的所有单元
for (int k = 0; k <row.LastCellNum; k++)
{
//内存中创建临时的一个单元 来存储 临时行中的所有数据
ICell cell = row.GetCell(k);
Console.Write(cell.ToString());
}
Console.WriteLine(); }
}
}//===============写=================
//内存中建一个空的工作簿
IWorkbook wk = new HSSFWorkbook();
//在工作簿下创建一张表
ISheet sheet= wk.CreateSheet("mySheet1");
//在表下创建50行
for (int i = 0; i < 50; i++)
{
//创建一行
IRow row = sheet.CreateRow(i);
//设置一个单元
for (int j = 0; j < 50; j++)
{
ICell cell = row.CreateCell(j);
cell.SetCellValue(j);
}
}
using (FileStream fw=File.OpenWrite(@"C:...xls"))
{
wk.Write(fw);
MessageBox.Show("0k");
}
先学好VBA吧。然后学会让Excel自动录制宏。你可以在Excel-Home论坛注册一个账号,下载几十个用Excel作的管理信息系统,看看人家用VBA怎么编程的。高级语言的差别,不应该成为什么障碍。如果你计较于编程语言不同,说明你根本没想着去了解Excel系统本身对象结构和COM接口体系。
private void tsbtn_Query_Click(object sender, EventArgs e)
{
CloseProcess("EXCEL");//关闭所有Excel进程
string P_str_Excel = tstxt_Excel.Text;//记录Excel文件路径
string P_str_SheetName = tscbox_Sheet.Text;//记录选择的工作表名称
object P_obj_Start = tstxt_Start.Text;//记录开始单元格
object P_obj_End = tstxt_End.Text;//记录结束单元格
object missing = System.Reflection.Missing.Value;//定义object缺省值
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//实例化Excel对象
//打开Excel文件
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(P_str_Excel, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
Microsoft.Office.Interop.Excel.Worksheet worksheet;//声明工作表
worksheet = ((Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[P_str_SheetName]);//获取选择的工作表
Microsoft.Office.Interop.Excel.Range searchRange = worksheet.get_Range(P_obj_Start, missing);//定义查找范围
switch (tscbox_Type.Text)//按照下拉列表中的文本进行条件判断
{
case "数字"://以数字序列填充
searchRange.AutoFill(worksheet.get_Range(P_obj_Start, P_obj_End), Microsoft.Office.Interop.Excel.XlAutoFillType.xlFillSeries);
break;
case "工作日"://以工作日填充
searchRange.AutoFill(worksheet.get_Range(P_obj_Start, P_obj_End), Microsoft.Office.Interop.Excel.XlAutoFillType.xlFillWeekdays);
break;
case "月份"://以月份填充
searchRange.AutoFill(worksheet.get_Range(P_obj_Start, P_obj_End), Microsoft.Office.Interop.Excel.XlAutoFillType.xlFillMonths);
break;
case "年份"://以年份填充
searchRange.AutoFill(worksheet.get_Range(P_obj_Start, P_obj_End), Microsoft.Office.Interop.Excel.XlAutoFillType.xlFillYears);
break;
default://以默认方式填充
searchRange.AutoFill(worksheet.get_Range(P_obj_Start, P_obj_End), Microsoft.Office.Interop.Excel.XlAutoFillType.xlFillDefault);
break;
}
excel.DisplayAlerts = false;//设置保存Excel时不显示对话框
workbook.Save();//保存工作簿
workbook.Close(false, missing, missing);//关闭工作簿
CloseProcess("EXCEL");//关闭所有Excel进程
WBrowser_Excel.Navigate(P_str_Excel);//在窗体中重新显示Excel文件内容
}