java读取*.xls与*.xlsx文件?求指教

今天学习java读取Excel文件,可是jxl不可以读取xlsx格式的,主要是想遍历出Excel文件里面的数据条数,代码不知道咋弄,怎么写啊?

5个回答

那你就换poi

chensong8148
肉松饼罗曼史 一用poi就报错
接近 3 年之前 回复
chensong8148
肉松饼罗曼史 这个看了,不行
接近 3 年之前 回复

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import com.dd.vo.User;

/**

  • 从excel读取数据/往excel中写入 excel有表头,表头每列的内容对应实体类的属性
  • @author nagsh
  • */

    public class ExcelUtil {

    private static HSSFWorkbook workbook = null;

    /**

    • 判断文件是否存在.
    • @param fileDir 文件路径
    • @return /
      public static boolean fileExist(String fileDir){
      boolean flag = false;
      File file = new File(fileDir);
      flag = file.exists();
      return flag;
      }
      /
      *
    • 判断文件的sheet是否存在.
    • @param fileDir 文件路径
    • @param sheetName 表格索引名
    • @return
      */

      public static boolean sheetExist(String fileDir,String sheetName){

      boolean flag = false;

      File file = new File(fileDir);

      if(file.exists()){ //文件存在

      //创建workbook

      try {

      workbook = new HSSFWorkbook(new FileInputStream(file));

      //添加Worksheet(不添加sheet时生成的xls文件打开时会报错)

      HSSFSheet sheet = workbook.getSheet(sheetName);

      if(sheet!=null)

      flag = true;

      } catch (Exception e) {

      e.printStackTrace();

      }

      }else{ //文件不存在

      flag = false;

      }

      return flag;

      }

      /**

    • 创建新excel.

    • @param fileDir excel的路径

    • @param sheetName 要创建的表格索引

    • @param titleRow excel的第一行即表格头
      */

      public static void createExcel(String fileDir,String arr[],String titleRow[]){

      //创建workbook

      workbook = new HSSFWorkbook();

      //添加Worksheet(不添加sheet时生成的xls文件打开时会报错)

      for(int i = 0 ; i<arr.length;i++){
      Sheet sheet1 = workbook.createSheet(arr[i]);
      }
      //新建文件

      FileOutputStream out = null;

      try {

      for(int j = 0 ; j < arr.length ; j++){
      //添加表头

      Row row = workbook.getSheet(arr[j]).createRow(0); //创建第一行

      for(int i = 0;i < titleRow.length;i++){

      Cell cell = row.createCell(i);

      cell.setCellValue(titleRow[i]);

      }

      }
      out = new FileOutputStream(fileDir);

      workbook.write(out);

      } catch (Exception e) {

      e.printStackTrace();

      } finally {

      try {

      out.close();

      } catch (IOException e) {

      e.printStackTrace();

      }

      }

    }

    /**

    • 删除文件.
    • @param fileDir 文件路径 /
      public static boolean deleteExcel(String fileDir){
      boolean flag = false;
      File file = new File(fileDir);
      // 判断目录或文件是否存在
      if (!file.exists()) { // 不存在返回 false
      return flag;
      } else {
      // 判断是否为文件
      if (file.isFile()) { // 为文件时调用删除文件方法
      file.delete();
      flag = true;
      }
      }
      return flag;
      }
      /
      *
    • 往excel中写入(已存在的数据无法写入).
    • @param fileDir 文件路径
    • @param sheetName 表格索引
    • @param object
      */

      public static boolean writeToExcel(String fileDir,String sheetName, Object object){

      //创建workbook

      File file = new File(fileDir);

      boolean falg = true;
      try {

      workbook = new HSSFWorkbook(new FileInputStream(file));

      } catch (FileNotFoundException e) {

      e.printStackTrace();

      } catch (IOException e) {

      e.printStackTrace();

      }

      //流

      FileOutputStream out = null;

      HSSFSheet sheet = workbook.getSheet(sheetName);

      // 获取表格的总行数

      int rowCount = sheet.getLastRowNum() + 1; // 需要加一

      // 获取表头的列数

      int columnCount = sheet.getRow(0).getLastCellNum();

      try {

      Row row = sheet.createRow(rowCount); //最新要添加的一行

      //通过反射获得object的字段,对应表头插入

      // 获取该对象的class对象

      Class class_ = object.getClass();

      // 获得表头行对象

      HSSFRow titleRow = sheet.getRow(0);
      String data = null;
      if(titleRow!=null){

      for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) { //遍历表头

      String title = titleRow.getCell(columnIndex).toString().trim().toString().trim();

      String UTitle = Character.toUpperCase(title.charAt(0))+ title.substring(1, title.length()); // 使其首字母大写;

      String methodName = "get"+UTitle;

      Method method = class_.getDeclaredMethod(methodName); // 设置要执行的方法

      try {
      data = method.invoke(object).toString();// 执行该get方法,即要插入的数据

      } catch (Exception e) {
      data = "未得到数据";
      }
      Cell cell = row.createCell(columnIndex);

      cell.setCellValue(data);

      }

      }

      out = new FileOutputStream(fileDir);  
      workbook.write(out);  
      

      } catch (Exception e) {

      falg = false;
      } finally {

      if(out!=null){
      try {

      out.close();

      } catch (IOException e) {

      e.printStackTrace();

      }
      }
      }
      return falg;
      }

      /**

    • 读取excel表中的数据.

    • @param fileDir 文件路径

    • @param sheetName 表格索引(EXCEL 是多表文档,所以需要输入表索引号,如sheet1)

    • @param object object
      */

      public static List readFromExcel(String fileDir,String sheetName, Object object) {

      //创建workbook

      File file = new File(fileDir);

      try {

      workbook = new HSSFWorkbook(new FileInputStream(file));

      } catch (FileNotFoundException e) {

      return null;

      } catch (IOException e) {

      e.printStackTrace();

      }

      List result = new ArrayList();

      // 获取该对象的class对象

      Class class_ = object.getClass();

      // 获得该类的所有属性

      Field[] fields = class_.getDeclaredFields();

      // 读取excel数据

      // 获得指定的excel表

      HSSFSheet sheet = workbook.getSheet(sheetName);

      // 获取表格的总行数

      int rowCount = sheet.getLastRowNum() + 1; // 需要加一

      System.out.println("rowCount:"+rowCount);

      if (rowCount < 1) {

      return result;

      }

      // 获取表头的列数

      int columnCount = sheet.getRow(0).getLastCellNum();

      // 读取表头信息,确定需要用的方法名---set方法

      // 用于存储方法名

      String[] methodNames = new String[columnCount]; // 表头列数即为需要的set方法个数

      // 用于存储属性类型

      String[] fieldTypes = new String[columnCount];

      // 获得表头行对象

      HSSFRow titleRow = sheet.getRow(0);

      // 遍历 根据表头获取对象字段
      for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) { // 遍历表头列

      String data = titleRow.getCell(columnIndex).toString(); // 某一列的内容

      String Udata = Character.toUpperCase(data.charAt(0))

      + data.substring(1, data.length()); // 使其首字母大写

      methodNames[columnIndex] = "set" + Udata;

      for (int i = 0; i < fields.length; i++) { // 遍历属性数组

      if (data.equals(fields[i].getName())) { // 属性与表头相等

      fieldTypes[columnIndex] = fields[i].getType().getName(); // 将属性类型放到数组中

      }

      }

      }

      // 逐行读取数据 从1开始 忽略表头

      for (int rowIndex = 1; rowIndex < rowCount; rowIndex++) {

      // 获得行对象

      HSSFRow row = sheet.getRow(rowIndex);

      if (row != null) {

      Object obj = null;

      // 实例化该泛型类的对象一个对象

      try {

      obj = class_.newInstance();

      } catch (Exception e1) {

      e1.printStackTrace();

      }

          // 获得本行中各单元格中的数据  
          for (int columnIndex = 0; columnIndex < columnCount; columnIndex++) {  
              String data = row.getCell(columnIndex).toString();  
              // 获取要调用方法的方法名  
              String methodName = methodNames[columnIndex];  
              Method method = null;  
              try {  
                  // 这部分可自己扩展  
                  if (fieldTypes[columnIndex].equals("java.lang.String")) {  
                      method = class_.getMethod(methodName,String.class); // 设置要执行的方法--set方法参数为String 
                      method.invoke(obj, data); // 执行该方法  
                  } else if (fieldTypes[columnIndex].equals("int")) {  
                      method = class_.getMethod(methodName, int.class); // 设置要执行的方法--set方法参数为int  
                      double data_double = Double.parseDouble(data);  
                      int data_int = (int) data_double;  
                      method.invoke(obj, data_int); // 执行该方法  
                  }
              } catch (Exception e) {  
                  e.printStackTrace();  
              }  
          }  
          result.add(obj);  
      }  
      

      }

      return result;

      }

    //判断文件是否存在,不存在则创建
    public static void ifThere(){
    //获取当前日期,判断是否存在当天的离线文档
    String dateTime = TimeUtil.DateTime(2);
    //创建文件路径
    String filePath = "D:/仁莫系统检测文件/离线文件/离线数据"+dateTime+".xls";
    //文件是否存在
    boolean file = ExcelUtil.fileExist(filePath);
    //不存在则创建Excel表格
    if (!file) {
    String title[] = {"eid","uid","type","data","sign","time"}; //文件标题(第一行)
    String arr[] = {"validate","status","warning","verify","product","qmxProcess"}; //文件表名
    ExcelUtil.createExcel(filePath,arr,title); //创建文件
    }
    }

    public static void main(String[] args) {

    ExcelUtil em = new ExcelUtil();

    //判断文件是否存在

    System.out.println(em.fileExist("E:/test2.xls"));

    //创建文件

    String title[] = {"id","name","password","time","eid","uid","type","data","sign"};
    String arr[] = {"validate","status","warning","verify","product"};
    em.createExcel("E:/test2.xls",arr,title);

    //判断sheet是否存在

    //写入到excel

    User user = new User();

    user.setId(5);

    user.setName("qwer");

    user.setPassword("zxcv");
    user.getBasicVo().setTime("111");
    user.getBasicVo().setEid("222");
    user.getBasicVo().setUid("333");
    user.getBasicVo().setType("444");
    user.getBasicVo().setData("555");
    user.getBasicVo().setSign("666");
    em.writeToExcel("E:/test2.xls","validate",user);

    //读取excel

    User user2 = new User();

    List list = em.readFromExcel("E:/test2.xls","validate", user2);

    for (int i = 0; i < list.size(); i++) {

    User newUser = (User) list.get(i);

    System.out.println(newUser.getId() + " " + newUser.getName() + " "

    + newUser.getPassword());

    }

    //删除文件

    //System.out.println(em.deleteExcel("E:/test2.xls"));

    }

}

chensong8148
肉松饼罗曼史 这么多,没看懂啊,读取文件怎么做的
接近 3 年之前 回复

我刚好这个星期写这个功能,用的poi

chensong8148
肉松饼罗曼史 嗯嗯,我现在也是想用poi,你写的demo的代码可以可以贴出看看啊?我这一直报错
接近 3 年之前 回复

用poi没问题的吧?你仔细看看你程序是不是哪弄错了

chensong8148
肉松饼罗曼史 嗯呐,就是一直报错,百度找了一些例子,也是错误的。我的jar包应该没错,就是找不出原因在哪,所以看看谁有demo。
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java 导入.xls文件没问题的但是导入.xlsx文件报异常
求指导 org.apache.poi.POIXMLException: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] at org.apache.poi.util.PackageHelper.open(PackageHelper.java:41) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:190) at com.whgj.common.ExcelSheetParser.<init>(ExcelSheetParser.java:38) at com.whgj.business.home.impl.ImportBusiness.excelToJmjbxx(ImportBusiness.java:49) at com.whgj.web.action.ImportAction.import_excel(ImportAction.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:471) at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:408) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.poi.openxml4j.exceptions.InvalidFormatException: Package should contain a content type part [M1.13] at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:147) at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:596) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:226) at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) ... 30 more ![图片说明](https://img-ask.csdn.net/upload/201604/29/1461910670_145195.png) ![图片说明](https://img-ask.csdn.net/upload/201604/29/1461910680_565057.png) 在 workbook = new XSSFWorkbook(is);时发生异常
java读取EXCEL内容xls与xlsx
大神们,请问一下我上传Excel文件两种格式xls和xlsx,为什么只有xls可以上传,xlsx文件就不能上传,我也做了两种格式的判断![图片说明](https://img-ask.csdn.net/upload/201706/14/1497406362_512345.png) 出错信息是:![图片说明](https://img-ask.csdn.net/upload/201706/14/1497406379_801001.png)
寻找个 用java poi 将xls转换成xlsx原有xls样式丢失问题的解决办法
最近在用java poi将原有财务部门的xls文件批量转换成xlsx格式,但是很不幸,xls原有的样式(比如:字体大小,字体颜色,背景)全部丢失了。 试着将原有xls里的style读出来设置给新的xlsx,但是遇到错误。 Code: xlsxCell.setCellStyle(xlsCell.getCellStyle()); Error: java.lang.ClassCastException: org.apache.poi.hssf.usermodel.HSSFCellStyle cannot be cast to org.apache.poi.xssf.usermodel.XSSFCellStyle at org.apache.poi.xssf.usermodel.XSSFCell.setCellStyle(XSSFCell.java:508)
POI 读取几万行左右的xlsx文件如果提高效率?
用 poi 3.8读取一万行(1.4MB)的xlsx要3.2秒,更新到 3.15/3.16 beta2之后,居然变成6秒以上 事实上数据可能有十万行左右,这样光是读取成 workbook就已经一分钟多了
java如何将html内容转换成xls或是xlsx文件?
java如何将html内容转换成xls或是xlsx文件。 目前html中分为左右两边内容,左边是各种链接,右边是一个list列表,我需要将list列表导出到excel中去。希望高手给予帮助,提供代码,不胜感激
用poi导入excel的xls和xlsx文件
用java代码编程,用poi导入excel的xls和xlsx文件
OleDb 读取 excel 文件少一列问题
OleDb 读取 excel 文件,有一类excel文件读取时,有一列读不出来 情景:excel文件读出时少一列,当用格式刷刷新这列或者其他可读出的列,这个文件就能读出来了。或者另存为.xls或.xlsx(原始文件格式.xls)文件就能读出来. 代码如下:new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ filename + ";Extended Properties=\"Excel 12.0 Xml;IMEX=1;HDR=YES\";");
WinForm 使用Html生成的.xlsx文件打不开
winform 使用html导出RadChartView中数据到Excel文件,xls格式没问题,xlsx文件打不开。 提示如下:Excel 无法打开文件“*.xlsx”,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。 代码如下: try { StringBuilder htmlStr = new StringBuilder(); htmlStr.Append("<html>"); htmlStr.Append("<head>"); htmlStr.Append("<meta charset=\"utf-8\"/>"); htmlStr.Append("</head>"); htmlStr.Append("<body>"); htmlStr.Append("<table>"); htmlStr.Append("<tr>"); if (this.radChartView1.Series.Count > 0) { foreach (var lineSeries in this.radChartView1.Series) { htmlStr.Append("<td>"); htmlStr.Append("<table border=\"1\">"); htmlStr.Append($"<th colspan=\"2\">{lineSeries.Name}</th>"); foreach (var dataPoint in lineSeries.DataPoints) { CategoricalDataPoint point = dataPoint as CategoricalDataPoint; if (point != null) { htmlStr.Append("<tr>"); htmlStr.Append($"<td>{point.Category}</td>"); htmlStr.Append($"<td>{point.Label}</td>"); htmlStr.Append("</tr>"); } } htmlStr.Append("</table>"); htmlStr.Append("</td>"); } } htmlStr.Append("</tr>"); htmlStr.Append("</table>"); htmlStr.Append("</body>"); htmlStr.Append("</html>"); using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { saveFileDialog.Filter = $"xls files(*.xls)|*.xls|xlsx files(*.xlsx)|*.xlsx"; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { StreamWriter writer = new StreamWriter(saveFileDialog.FileName, false); writer.WriteLine(htmlStr.ToString()); writer.Close(); } } } catch (Exception exception) { RadMessageBox.Show(exception.Message); }
http协议如何接收xlsx文件
我想从服务器向浏览器客户端发送一个xlsx文件,但是我不知道浏览器如何接收这个xlsx 文件,http协议的content-type应该怎么写呢?我现在写的是:Content-Type=application/vnd.ms-excel,这个只能把文件保存成xls文件,现在我要把文件保存成xlsx文件该怎么 写呢,请大神指教
C#如何判断上传的文件是xls还是xlsx?
如题!用户上传文件,前端已经做了基本的控制,只能上传xls文件。 但是用户更改文件后缀名的话,还是能把xlsx当成xls上传, 后端当做xls处理的话,就会报错。 我想在后端处理之前,再做一个判断,能够真正确定文件格式, 不正确的格式就返回提示用户。 请问我该怎么做?
R语言加载xlsx包出错无法载入
R语言加载xlsx包出错,按照搜索过的教程重新下载了java也设置了环境,但依旧无法加载xlsx包 Error: package or namespace load failed for 'xlsx': .onLoad failed in loadNamespace() for 'rJava', details: call: inDL(x, as.logical(local), as.logical(now), ...) error: 无法载入共享目标对象‘D:/R/R-3.6.0/library/rJava/libs/i386/rJava.dll’:: LoadLibrary failure: %1 不是有效的 Win32 应用程序。 错误: 载入失败 停止执行 R和java检查过了都是64位的,请各位大神看看是怎么回事?万分感激!! [图片说明](https://img-ask.csdn.net/upload/202002/15/1581737567_471063.png)
请教STL中正则表达写法
我想按照一定的规则来匹配文件名。 规则如下: 1.后缀为.doc 或者.docx 或者 .xls 或者 .xlsx 2.文件名开头不能为~$ 请问正则表达式如何写
openpyxl 生产xlsx文件报错
python 3.6 openpyxl 3.0.2 ```python from openpyxl import Workbook from openpyxl.utils import get_column_letter wb = Workbook() dest_filename = 'empty_book.xlsx' ws1 = wb.active ws1.title = "range names" for row in range(1, 40): ws1.append(range(600)) ws2 = wb.create_sheet(title="Pi") ws2['F5'] = 3.14 ws3 = wb.create_sheet(title="Data") for row in range(10, 20): for col in range(27, 54): _ = ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col))) print(ws3['AA10'].value) wb.save(filename = dest_filename) ``` Traceback (most recent call last): File "C:/Users/Administrator/Desktop/python 报价单生成脚本/111.py", line 36, in <module> wb.save(filename = dest_filename) File "D:\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py", line 408, in save save_workbook(self, filename) File "D:\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 293, in save_workbook writer.save() File "D:\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 275, in save self.write_data() File "D:\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 75, in write_data self._write_worksheets() File "D:\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 215, in _write_worksheets self.write_worksheet(ws) File "D:\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 200, in write_worksheet writer.write() File "D:\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 354, in write self.write_top() File "D:\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 98, in write_top self.write_properties() File "D:\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 60, in write_properties self.xf.send(props.to_tree()) File "D:\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 294, in get_stream xf.write(el) File "src/lxml/serializer.pxi", line 1230, in lxml.etree._IncrementalFileWriter.write TypeError: got invalid input value of type <class 'xml.etree.ElementTree.Element'>, expected string or Element
Excel VBA中把多个Excel数据的某一列导入到另一个新的Excel的sheet中(导入的列在一个sheet里)。VBA小白 谢谢大家
有3个.xls还有两个.xlsx (每个Excel都有多个sheet) 要导入五个Excel表的所有sheet的某一列到新的Excel表的sheet中 标签应该是 Excel VBA 但是没找到就随便找了一个
pandas读取excel的中文列名时出现错误
```py path1='D:\experiment' xlsx_names = [x for x in os.listdir(path1) if x.endswith(".xlsx")] #读取以xlsx结尾的文件 print(xlsx_names) df_data = None for xlsx_name in xlsx_names: path=os.path.join(path1,xlsx_name) print(path) df = pd.read_excel(path, sheet_name='订单明细') print(df) print(df['客户所在城市(地级市)']) print(df['商品件数(件数)']) ``` KeyError: '客户所在城市(地级市)' 不能打印出来,有没有人知道怎么回事
GO语言打开文件失败,runtime error
打开文件直接失败了,是接受文件内容的变量空间不够嘛?这种情况不应该出现在打开文件时吧,大佬们,救救~ ``` import ( ... "github.com/tealeg/xlsx" ) func main() { ... xlFile, err := xlsx.OpenFile(file.Name()) if err != nil { fmt.Printf("open file: %s --> failed: %s\n", file.Name(), err) } ``` ``` open file: test.xlsx --> failed: runtime error: index out of range [63] with length 0 panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x30 pc=0x51d3db] goroutine 1 [running]: main.main() c:/GoWorks/src/github.com/xxx/project/excel/main.go:39 +0x3cb exit status 2 ```
java读取excle表格后数据22102000000变成了2.2102E10
package com.seeyon.apps.lockipPlugin; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.DateUtil; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 读取Excel * * @author lidy */ public class UnifiledData{ private Logger logger = LoggerFactory.getLogger(UnifiledData.class); private Workbook wb; private Sheet sheet; private Row row; public UnifiledData(String filepath) { if(filepath==null){ return; } String ext = filepath.substring(filepath.lastIndexOf(".")); try { InputStream is = new FileInputStream(filepath); if(".xls".equals(ext)){ wb = new HSSFWorkbook(is); }else if(".xlsx".equals(ext)){ wb = new XSSFWorkbook(is); }else{ wb=null; } } catch (FileNotFoundException e) { logger.error("FileNotFoundException", e); } catch (IOException e) { logger.error("IOException", e); } } /** * 读取Excel表格表头的内容 * * @param InputStream * @return String 表头内容的数组 * @author zengwendong */ public String[] readExcelTitle() throws Exception{ if(wb==null){ throw new Exception("Workbook对象为空!"); } sheet = wb.getSheetAt(0); row = sheet.getRow(0); // 标题总列数 int colNum = row.getPhysicalNumberOfCells(); System.out.println("colNum:" + colNum); String[] title = new String[colNum]; for (int i = 0; i < colNum; i++) { // title[i] = getStringCellValue(row.getCell((short) i)); title[i] = row.getCell(i).getCellFormula(); } return title; } /** * 读取Excel数据内容 * * @param InputStream * @return Map 包含单元格数据内容的Map对象 * @author zengwendong */ public Map<Integer, Map<Integer,Object>> readExcelContent() throws Exception{ if(wb==null){ throw new Exception("Workbook对象为空!"); } Map<Integer, Map<Integer,Object>> content = new HashMap<Integer, Map<Integer,Object>>(); sheet = wb.getSheetAt(0); // 得到总行数 int rowNum = sheet.getLastRowNum(); row = sheet.getRow(0); int colNum = row.getPhysicalNumberOfCells(); // 正文内容应该从第二行开始,第一行为表头的标题 // 现在是从第一行开始 for (int i = 1; i <= rowNum; i++) { row = sheet.getRow(i); int j = 0; Map<Integer,Object> cellValue = new HashMap<Integer, Object>(); while (j < colNum) { Object obj = getCellFormatValue(row.getCell(j)); cellValue.put(j, obj); j++; } content.put(i, cellValue); } return content; } /** * * 根据Cell类型设置数据 * * @param cell * @return * @author zengwendong */ private Object getCellFormatValue(Cell cell) { Object cellvalue = ""; if (cell != null) { // 判断当前Cell的Type switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC:// 如果当前Cell的Type为NUMERIC case Cell.CELL_TYPE_FORMULA: { // 判断当前的cell是否为Date if (DateUtil.isCellDateFormatted(cell)) { // 如果是Date类型则,转化为Data格式 // data格式是带时分秒的:2013-7-10 0:00:00 // cellvalue = cell.getDateCellValue().toLocaleString(); // data格式是不带带时分秒的:2013-7-10 Date date = cell.getDateCellValue(); cellvalue = date; } else {// 如果是纯数字 // 取得当前Cell的数值 cellvalue = String.valueOf(cell.getNumericCellValue()); } break; } case Cell.CELL_TYPE_STRING:// 如果当前Cell的Type为STRING // 取得当前的Cell字符串 cellvalue = cell.getRichStringCellValue().getString(); break; default:// 默认的Cell值 cellvalue = ""; } } else { cellvalue = ""; } return cellvalue; } /* public static void main(String[] args){ try { String filepath = "D://org_unit.xls"; UnifiledData excelReader = new UnifiledData(filepath); // 对读取Excel表格标题测试 // String[] title = excelReader.readExcelTitle(); // System.out.println("获得Excel表格的标题:"); // for (String s : title) { // System.out.print(s + " "); // } // 对读取Excel表格内容测试 Map<Integer,Map<Integer,Object>> map = excelReader.readExcelContent(); System.out.println("获得Excel表格的内容:"); for (int i = 1; i <= map.size()-1; i++){ System.out.println(map.get(i)); } } catch (FileNotFoundException e) { System.out.println("未找到指定路径的文件!"); e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } } */ } ``` ``` public static void main(String[] args) { String filepath = "D://org_unit.xls"; UnifiledData excelReader = new UnifiledData(filepath); // 对读取Excel表格内容测试 Map<Integer,Map<Integer,Object>> map = excelReader.readExcelContent(); for(int i=1;i<map.size();i++){ System.out.println(map.get(i).get(1![图片说明](https://img-ask.csdn.net/upload/201711/23/1511450585_440911.jpg))); } }
java解析Excel,The supplied file was empty
利用poi包解析excel文件的时候,出现以下错误 org.apache.poi.EmptyFileException: The supplied file was empty (zero bytes long) at org.apache.poi.util.IOUtils.peekFirstNBytes(IOUtils.java:74) at org.apache.poi.util.IOUtils.peekFirst8Bytes(IOUtils.java:57) at org.apache.poi.poifs.filesystem.FileMagic.valueOf(FileMagic.java:135) at org.apache.poi.openxml4j.opc.internal.ZipHelper.verifyZipHeader(ZipHelper.java:175) at org.apache.poi.openxml4j.opc.internal.ZipHelper.openZipStream(ZipHelper.java:209) at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:98) at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:324) at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37) at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:295) at com.zzidc.tax.bookkeeping.util.XlsUtils.readExcel(XlsUtils.java:53) at com.zzidc.tax.bookkeeping.service.GenerateReportService.getRoleForExcel(GenerateReportService.java:254) at com.zzidc.tax.bookkeeping.service.GenerateReportService.analysisImage(GenerateReportService.java:110) at com.zzidc.tax.rabbitmq.CustomerChoose.analy(CustomerChoose.java:188) at com.zzidc.tax.rabbitmq.CustomerChoose.processAndSaveDeclareImg(CustomerChoose.java:169) at com.zzidc.tax.rabbitmq.CustomerChoose.access$2(CustomerChoose.java:155) at com.zzidc.tax.rabbitmq.CustomerChoose$1.handleDelivery(CustomerChoose.java:80) at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:144) at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:99) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) 我的代码如下: //读取excel public static Workbook readExcel(String filePath){ Workbook wb = null; InputStream is = null; URLConnection conn = null; if(filePath==null){ return null; } String extString = filePath.substring(filePath.lastIndexOf(".")); try { URL url = new URL(filePath); conn = url.openConnection(); conn.setConnectTimeout(3000); conn.setReadTimeout(3 * 60 * 1000); is = conn.getInputStream(); wb = StreamingReader.builder() .rowCacheSize(100) .bufferSize(1024 * 1024 * 5) .open(is); if(".xls".equals(extString)){ wb = new HSSFWorkbook(is); }else if(".xlsx".equals(extString)){ wb = new XSSFWorkbook(is); }else{ wb = null; } } catch (Exception e) { logger.error("Excel工具读取文件发生异常,异常: " + e); logger.error("文件: " + filePath); e.printStackTrace(); return null; }finally{ if (is != null) { try { is.close(); } catch (IOException e) { } } } return wb; } 请问各位大手,这个问题是怎么产生的,该怎么解决呢,谢谢了
利用jodconverter+openoffice转换docx、xlsx不成功!求大神帮忙!跪谢啦!
用的是jodconverter-core-3.0-beta-4-dist里的jar包; OpenOffice 用的4.1.1的版本; 调用代码书写如下: public static boolean startService(String wordFile,String pdfFile,String fileswf){ boolean flag = false; DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration(); try{ File inputFile = new File(wordFile); if (inputFile.exists()){ int ports[] = {Integer.parseInt(CommUtil.getPort_Str())}; config.setOfficeHome( new File(CommUtil.getOpenOffice_HOME())); config.setPortNumbers(ports); config.setTaskExecutionTimeout(1000 * 60 * 5L);// 设置任务执行超时为5分钟 config.setTaskQueueTimeout(1000 * 60 * 60 * 24L);// 设置任务队列超时为24小时 officeManager = config.buildOfficeManager(); officeManager.start();// 启动服务 OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); // 如果目标路径不存在, 则新建该路径 File outputFile = new File(pdfFile); if (!outputFile.getParentFile().exists()) outputFile.getParentFile().mkdirs(); File fileswfo = new File(fileswf); if (!fileswfo.exists()) fileswfo.mkdirs(); converter.convert(inputFile, outputFile); if(officeManager != null) officeManager.stop(); flag = true; } else flag = false; }catch (Exception ce) { System.out.println("office转换服务启动失败!详细信息:" + ce); ce.printStackTrace(); } return flag; } 转换doc、xls、ppt、pptx都没有问题,可唯独docx、xlsx转换不了,看网上有人说能转换,是不是代码写的有问题呢,望有大神能帮忙解决问题啊,小弟不胜感激! 后台报错如下: office转换服务启动失败!详细信息:org.artofsolving.jodconverter.office.OfficeException: could not load document: 1433490929760工作安排.xlsx org.artofsolving.jodconverter.office.OfficeException: could not load document: 1433490929760工作安排.xlsx at org.artofsolving.jodconverter.AbstractConversionTask.loadDocument(AbstractConversionTask.java:92) at org.artofsolving.jodconverter.AbstractConversionTask.execute(AbstractConversionTask.java:59) at org.artofsolving.jodconverter.office.PooledOfficeManager$2.run(PooledOfficeManager.java:80) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one. at com.sun.star.lib.uno.environments.remote.Job.remoteUnoRequestRaisedException(Job.java:177) at com.sun.star.lib.uno.environments.remote.Job.execute(Job.java:143) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:335) at com.sun.star.lib.uno.environments.remote.JobQueue.enter(JobQueue.java:304) at com.sun.star.lib.uno.environments.remote.JavaThreadPool.enter(JavaThreadPool.java:91) at com.sun.star.lib.uno.bridges.java_remote.java_remote_bridge.sendRequest(java_remote_bridge.java:639) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.request(ProxyFactory.java:151) at com.sun.star.lib.uno.bridges.java_remote.ProxyFactory$Handler.invoke(ProxyFactory.java:133) at com.sun.proxy.$Proxy35.loadComponentFromURL(Unknown Source) at org.artofsolving.jodconverter.AbstractConversionTask.loadDocument(AbstractConversionTask.java:90) ... 8 more
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
MyBatis研习录(01)——MyBatis概述与入门
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往——自定义View系列教程(10篇) 走出思维困境,踏上精进之路——Android开发进阶精华录 讲给Android程序员看的前端系列教程(40集免费视频教程+源码) 版权声明 本文原创作者:谷哥的小弟 作者博客
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
web前端javascript+jquery知识点总结
Javascript javascript 在前端网页中占有非常重要的地位,可以用于验证表单,制作特效等功能,它是一种描述语言,也是一种基于对象(Object)和事件驱动并具有安全性的脚本语言 ,语法同java类似,是一种解释性语言,边执行边解释。 JavaScript的组成: ECMAScipt 用于描述: 语法,变量和数据类型,运算符,逻辑控制语句,关键字保留字,对象。 浏览器对象模型(Br
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
渗透测试-灰鸽子远控木马
木马概述 灰鸽子( Huigezi),原本该软件适用于公司和家庭管理,其功能十分强大,不但能监视摄像头、键盘记录、监控桌面、文件操作等。还提供了黑客专用功能,如:伪装系统图标、随意更换启动项名称和表述、随意更换端口、运行后自删除、毫无提示安装等,并采用反弹链接这种缺陷设计,使得使用者拥有最高权限,一经破解即无法控制。最终导致被黑客恶意使用。原作者的灰鸽子被定义为是一款集多种控制方式于一体的木马程序
Python:爬取疫情每日数据
前言 有部分同学留言说为什么412,这是因为我代码里全国的cookies需要你自己打开浏览器更新好后替换,而且这个cookies大概只能持续20秒左右! 另外全国卫健委的数据格式一直在变,也有可能会导致爬取失败! 我现在已根据2月14日最新通报稿的格式修正了! 目前每天各大平台,如腾讯、今日头条都会更新疫情每日数据,他们的数据源都是一样的,主要都是通过各地的卫健委官网通报。 为什么已经有大量平台做
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
粒子群算法求解物流配送路线问题(python)
粒子群算法求解物流配送路线问题(python) 1.查找论文文献 找一篇物流配送路径优化+粒子群算法求解的论文 参考文献:基于混沌粒子群算法的物流配送路径优化 2.了解粒子群算法的原理 讲解通俗易懂,有数学实例的博文:https://blog.csdn.net/daaikuaichuan/article/details/81382794 3.确定编码方式和解码策略 3.1编码方式 物流配送路线的
教你如何编写第一个简单的爬虫
很多人知道爬虫,也很想利用爬虫去爬取自己想要的数据,那么爬虫到底怎么用呢?今天就教大家编写一个简单的爬虫。 下面以爬取笔者的个人博客网站为例获取第一篇文章的标题名称,教大家学会一个简单的爬虫。 第一步:获取页面 #!/usr/bin/python # coding: utf-8 import requests #引入包requests link = "http://www.santostang.
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问